
<!DOCTYPE HTML>
<html lang="zh-hans" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>基础入门 · Elasticsearch权威指南中文版</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        <meta name="author" content="WS">
        
        
    
    <link rel="stylesheet" href="gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-anchors/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-splitter/splitter.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-tbfed-pagefooter/footer.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-anchor-navigation-ex/style/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-ace/ace.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-emphasize/plugin.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-search-plus/search.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="2_1_Introductory.html" />
    
    
    <link rel="prev" href="1Preface.html" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="输入并搜索" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="./">
            
                <a href="./">
            
                    
                    序言
            
                </a>
            

            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="2.1" data-path="1Preface.html">
            
                <a href="1Preface.html">
            
                    
                    前言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.1.1" data-path="1Preface.html">
            
                <a href="1Preface.html#谁应该读这本书">
            
                    
                    谁应该读这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.2" data-path="1Preface.html">
            
                <a href="1Preface.html#为什么我们要写这本书">
            
                    
                    为什么我们要写这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.3" data-path="1Preface.html">
            
                <a href="1Preface.html#Elasticsearch版本">
            
                    
                    Elasticsearch版本
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.4" data-path="1Preface.html">
            
                <a href="1Preface.html#如何读这本书">
            
                    
                    如何读这本书
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.5" data-path="1Preface.html">
            
                <a href="1Preface.html#本书导航">
            
                    
                    本书导航
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.6" data-path="1Preface.html">
            
                <a href="1Preface.html#在线资源">
            
                    
                    在线资源
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.7" data-path="1Preface.html">
            
                <a href="1Preface.html#本书协议约定">
            
                    
                    本书协议约定
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.8" data-path="1Preface.html">
            
                <a href="1Preface.html#使用代码示例">
            
                    
                    使用代码示例
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.1.9" data-path="1Preface.html">
            
                <a href="1Preface.html#鸣谢">
            
                    
                    鸣谢
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter active" data-level="3.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html">
            
                    
                    基础入门
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#你知道的为了搜索">
            
                    
                    你知道的, 为了搜索…
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.1.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#安装并运行Elasticsearch">
            
                    
                    安装并运行Elasticsearch
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#安装Sense">
            
                    
                    安装Sense
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#和Elasticsearch交互">
            
                    
                    和Elasticsearch交互
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#面向文档">
            
                    
                    面向文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#适应新环境">
            
                    
                    适应新环境
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#索引雇员文档">
            
                    
                    索引雇员文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.7" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#检索文档">
            
                    
                    检索文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.8" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#轻量搜索">
            
                    
                    轻量搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.9" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#使用查询表达式搜索">
            
                    
                    使用查询表达式搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.10" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#更复杂的搜索">
            
                    
                    更复杂的搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.11" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#全文搜索">
            
                    
                    全文搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.12" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#短语搜索">
            
                    
                    短语搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.13" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#高亮搜索">
            
                    
                    高亮搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.14" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#分析">
            
                    
                    分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.15" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#教程结语">
            
                    
                    教程结语
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.16" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#分布式特性">
            
                    
                    分布式特性
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.1.17" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#">
            
                    
                    后续步骤
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#集群内的原理">
            
                    
                    集群内的原理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.2.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#空集群">
            
                    
                    空集群
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#集群健康">
            
                    
                    集群健康
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#添加索引">
            
                    
                    添加索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#添加故障转">
            
                    
                    添加故障转
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#水平扩容">
            
                    
                    水平扩容
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.2.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#应对故障">
            
                    
                    应对故障
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#数据输入和输出">
            
                    
                    数据输入和输出
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.3.1" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#什么是文档">
            
                    
                    什么是文档?
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.2" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#文档元数据">
            
                    
                    文档元数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.3" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#索引文档">
            
                    
                    索引文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.4" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#取回一个文档">
            
                    
                    取回一个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.5" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#检查文档是否存在">
            
                    
                    检查文档是否存在
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.6" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#更新整个文档">
            
                    
                    更新整个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.7" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#创建新文档">
            
                    
                    创建新文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.8" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#删除文档">
            
                    
                    删除文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.9" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#处理冲突">
            
                    
                    处理冲突
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.10" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#乐观并发控制">
            
                    
                    乐观并发控制
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.11" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#文档的部分更新">
            
                    
                    文档的部分更新
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.12" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#取回多个文档">
            
                    
                    取回多个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.3.13" data-path="2_1_Introductory.html">
            
                <a href="2_1_Introductory.html#代价较小的批量操作">
            
                    
                    代价较小的批量操作
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分布式文档存储">
            
                    
                    分布式文档存储
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.4.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#路由一个文档到一个分片中">
            
                    
                    路由一个文档到一个分片中
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#主分片和副本分片如何交互">
            
                    
                    主分片和副本分片如何交互
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#新建索引和删除文档">
            
                    
                    新建、索引和删除文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#取回一个文档">
            
                    
                    取回一个文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#局部更新文档">
            
                    
                    局部更新文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.4.6" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#多文档模式">
            
                    
                    多文档模式
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#搜索最基本的工具">
            
                    
                    搜索——最基本的工具
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.5.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#空搜索">
            
                    
                    空搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#多索引多类型">
            
                    
                    多索引，多类型
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分页">
            
                    
                    分页
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.5.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#轻量搜索">
            
                    
                    轻量搜索
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.6" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#映射和分析">
            
                    
                    映射和分析
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.6.1" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#精确值VS全文">
            
                    
                    精确值 VS 全文
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.2" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#倒排索引">
            
                    
                    倒排索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.3" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#分析与分析器">
            
                    
                    分析与分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.4" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#映射">
            
                    
                    映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.6.5" data-path="2_2_Introductory.html">
            
                <a href="2_2_Introductory.html#复杂核心域类型">
            
                    
                    复杂核心域类型
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.7" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#请求体查询">
            
                    
                    请求体查询
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.7.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#空查询">
            
                    
                    空查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询表达式">
            
                    
                    查询表达式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询与过滤">
            
                    
                    查询与过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#最重要的查询">
            
                    
                    最重要的查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.5" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#组合多查询">
            
                    
                    组合多查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.7.6" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#验证查询">
            
                    
                    验证查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.8" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#排序与相关性">
            
                    
                    排序与相关性
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.8.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#排序">
            
                    
                    排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#字符串排序与多字段">
            
                    
                    字符串排序与多字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#什么是相关性">
            
                    
                    什么是相关性?
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.8.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#DocValues介绍">
            
                    
                    Doc Values 介绍
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.9" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#执行分布式检索">
            
                    
                    执行分布式检索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.9.1" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#查询阶段">
            
                    
                    查询阶段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.2" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#取回阶段">
            
                    
                    取回阶段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.3" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#搜索选项">
            
                    
                    搜索选项
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.9.4" data-path="2_3_Introductory.html">
            
                <a href="2_3_Introductory.html#游标查询Scroll">
            
                    
                    游标查询 Scroll
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.10" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引管理">
            
                    
                    索引管理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.10.1" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#创建一个索引">
            
                    
                    创建一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.2" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#删除一个索引">
            
                    
                    删除一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.3" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引设置">
            
                    
                    索引设置
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.4" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#配置分析器">
            
                    
                    配置分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.5" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#自定义分析器">
            
                    
                    自定义分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.6" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#类型和映射">
            
                    
                    类型和映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.7" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#根对象">
            
                    
                    根对象
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.8" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#动态映射">
            
                    
                    动态映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.9" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#自定义动态映射">
            
                    
                    自定义动态映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.10" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#缺省映射">
            
                    
                    缺省映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.11" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#重新索引你的数据">
            
                    
                    重新索引你的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.10.12" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#索引别名和零停机">
            
                    
                    索引别名和零停机
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="3.1.11" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#分片内部原理">
            
                    
                    分片内部原理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="3.1.11.1" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#使文本可被搜索">
            
                    
                    使文本可被搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.2" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#动态更新索引">
            
                    
                    动态更新索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.3" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#近实时搜索">
            
                    
                    近实时搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.4" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#持久化变更">
            
                    
                    持久化变更
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.1.11.5" data-path="2_4_Introductory.html">
            
                <a href="2_4_Introductory.html#段合并">
            
                    
                    段合并
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="4.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#深入搜索">
            
                    
                    深入搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#结构化搜索">
            
                    
                    结构化搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.1.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#精确值查找">
            
                    
                    精确值查找
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#组合过滤器">
            
                    
                    组合过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#查找多个精确值">
            
                    
                    查找多个精确值
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#范围">
            
                    
                    范围
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#处理Null值">
            
                    
                    处理 Null 值
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.1.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#关于缓存">
            
                    
                    关于缓存
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#全文搜索">
            
                    
                    全文搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.2.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#基于词项与基于全文">
            
                    
                    基于词项与基于全文
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#匹配查询">
            
                    
                    匹配查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多词查询">
            
                    
                    多词查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#组合查询">
            
                    
                    组合查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#如何使用布尔匹配">
            
                    
                    如何使用布尔匹配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#查询语句提升权重">
            
                    
                    查询语句提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.7" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#控制分析">
            
                    
                    控制分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.2.8" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#被破坏的相关度">
            
                    
                    被破坏的相关度！
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多字段搜索">
            
                    
                    多字段搜索
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.3.1" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多字符串查询">
            
                    
                    多字符串查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.2" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#单字符串查询">
            
                    
                    单字符串查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.3" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#最佳字段">
            
                    
                    最佳字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.4" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#最佳字段查询调优">
            
                    
                    最佳字段查询调优
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.5" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#multi_match查询">
            
                    
                    multi_match 查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.6" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#多数字段">
            
                    
                    多数字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.7" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#跨字段实体搜索">
            
                    
                    跨字段实体搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.8" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#字段中心式查询">
            
                    
                    字段中心式查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.9" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#自定义all字段">
            
                    
                    自定义 _all 字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.10" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#crossfields跨字段查询">
            
                    
                    cross-fields 跨字段查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.3.11" data-path="3_1_DeepSearch.html">
            
                <a href="3_1_DeepSearch.html#ExactValue精确值字段">
            
                    
                    Exact-Value 精确值字段
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#近似匹配">
            
                    
                    近似匹配
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.4.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#短语匹配">
            
                    
                    短语匹配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#混合起来">
            
                    
                    混合起来
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#多值字段">
            
                    
                    多值字段
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#越近越好">
            
                    
                    越近越好
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#使用邻近度提高相关度">
            
                    
                    使用邻近度提高相关度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#性能优化">
            
                    
                    性能优化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.4.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#寻找相关词">
            
                    
                    寻找相关词
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#部分匹配">
            
                    
                    部分匹配
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.5.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#邮编与结构化数据">
            
                    
                    邮编与结构化数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#prefix前缀查询">
            
                    
                    prefix 前缀查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#通配符与正则表达式查询">
            
                    
                    通配符与正则表达式查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#查询时输入即搜索">
            
                    
                    查询时输入即搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#索引时优化">
            
                    
                    索引时优化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Ngrams在部分匹配的应用">
            
                    
                    Ngrams 在部分匹配的应用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#索引时输入即搜索">
            
                    
                    索引时输入即搜索
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.5.8" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Ngrams在复合词的应用">
            
                    
                    Ngrams 在复合词的应用
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="4.1.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#控制相关度">
            
                    
                    控制相关度
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="4.1.6.1" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#相关度评分背后的理论">
            
                    
                    相关度评分背后的理论
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.2" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#Lucene的实用评分函数">
            
                    
                    Lucene 的实用评分函数
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.3" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#查询时权重提升">
            
                    
                    查询时权重提升
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.4" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#使用查询结构修改相关度">
            
                    
                    使用查询结构修改相关度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.5" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#NotQuiteNot">
            
                    
                    Not Quite Not
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.6" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#忽略TFIDF">
            
                    
                    忽略 TF/IDF
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.7" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#functionscore查询">
            
                    
                    function_score 查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.8" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#按受欢迎度提升权重">
            
                    
                    按受欢迎度提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.9" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#过滤集提升权重">
            
                    
                    过滤集提升权重
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.10" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#随机评分">
            
                    
                    随机评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.11" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#越近越好">
            
                    
                    越近越好
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.12" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#理解price价格语句">
            
                    
                    理解 price 价格语句
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.13" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#脚本评分">
            
                    
                    脚本评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.14" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#可插拔的相似度算法">
            
                    
                    可插拔的相似度算法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.15" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#更改相似度">
            
                    
                    更改相似度
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.1.6.16" data-path="3_2_DeepSearch.html">
            
                <a href="3_2_DeepSearch.html#调试相关度是最后10要做的事情">
            
                    
                    调试相关度是最后 10% 要做的事情
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="5.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#处理人类语言">
            
                    
                    处理人类语言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#开始处理各种语言">
            
                    
                    开始处理各种语言
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.1.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#使用语言分析器">
            
                    
                    使用语言分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#配置语言分析器">
            
                    
                    配置语言分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#混合语言的陷阱">
            
                    
                    混合语言的陷阱
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#每份文档一种语言">
            
                    
                    每份文档一种语言
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#每个域一种语言">
            
                    
                    每个域一种语言
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.1.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#混合语言域">
            
                    
                    混合语言域
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#词汇识别">
            
                    
                    词汇识别
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.2.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#标准分析器">
            
                    
                    标准分析器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#标准分词器">
            
                    
                    标准分词器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#安装ICU插件">
            
                    
                    安装 ICU 插件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#icu分词器">
            
                    
                    icu_分词器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.2.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#整理输入文本">
            
                    
                    整理输入文本
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#归一化词元">
            
                    
                    归一化词元
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.3.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#举个例子">
            
                    
                    举个例子
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#如果有口音">
            
                    
                    如果有口音
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode的世界">
            
                    
                    Unicode的世界
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode大小写折叠">
            
                    
                    Unicode 大小写折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Unicode字符折叠">
            
                    
                    Unicode 字符折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.3.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#排序和整理">
            
                    
                    排序和整理
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#将单词还原为词根">
            
                    
                    将单词还原为词根
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.4.1" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#词干提取算法">
            
                    
                    词干提取算法
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.2" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#字典词干提取器">
            
                    
                    字典词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.3" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#Hunspell词干提取器">
            
                    
                    Hunspell 词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.4" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#选择一个词干提取器">
            
                    
                    选择一个词干提取器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.5" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#控制词干提取">
            
                    
                    控制词干提取
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.4.6" data-path="4_1_Dealing_with_language.html">
            
                <a href="4_1_Dealing_with_language.html#原形词干提取">
            
                    
                    原形词干提取
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词性能与精度">
            
                    
                    停用词: 性能与精度
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.5.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词的优缺点">
            
                    
                    停用词的优缺点
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#使用停用词">
            
                    
                    使用停用词
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与性能">
            
                    
                    停用词与性能
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#词项的分别管理">
            
                    
                    词项的分别管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与短语查询">
            
                    
                    停用词与短语查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#commongrams过滤器">
            
                    
                    common_grams 过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.5.7" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#停用词与相关性">
            
                    
                    停用词与相关性
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词">
            
                    
                    同义词
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.6.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#使用同义词">
            
                    
                    使用同义词
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词格式">
            
                    
                    同义词格式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#扩展或收缩">
            
                    
                    扩展或收缩
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#同义词和分析链">
            
                    
                    同义词和分析链
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#多词同义词和短语查询">
            
                    
                    多词同义词和短语查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.6.6" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#符号同义词">
            
                    
                    符号同义词
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="5.1.7" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#拼写错误">
            
                    
                    拼写错误
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="5.1.7.1" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊性">
            
                    
                    模糊性
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.2" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊查询">
            
                    
                    模糊查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.3" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊匹配查询">
            
                    
                    模糊匹配查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.4" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#模糊性评分">
            
                    
                    模糊性评分
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="5.1.7.5" data-path="4_2_Dealing_with_language.html">
            
                <a href="4_2_Dealing_with_language.html#语音匹配">
            
                    
                    语音匹配
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="6.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#聚合">
            
                    
                    聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#高阶概念">
            
                    
                    高阶概念
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.1.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#桶">
            
                    
                    桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.1.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#指标">
            
                    
                    指标
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.1.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#桶和指标的组合">
            
                    
                    桶和指标的组合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#尝试聚合">
            
                    
                    尝试聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.2.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#添加度量指标">
            
                    
                    添加度量指标
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.2.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#嵌套桶">
            
                    
                    嵌套桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.2.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#最后的修改">
            
                    
                    最后的修改
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#条形图">
            
                    
                    条形图
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#按时间统计">
            
                    
                    按时间统计
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.4.1" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#返回空Buckets">
            
                    
                    返回空 Buckets
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4.2" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#扩展例子">
            
                    
                    扩展例子
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.4.3" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#潜力无穷">
            
                    
                    潜力无穷
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.5" data-path="5_1_Aggregations.html">
            
                <a href="5_1_Aggregations.html#范围限定的聚合">
            
                    
                    范围限定的聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤和聚合">
            
                    
                    过滤和聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.6.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤">
            
                    
                    过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#过滤桶">
            
                    
                    过滤桶
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#后过滤器">
            
                    
                    后过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.6.4" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#小结5_2">
            
                    
                    小结
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.7" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#多桶排序">
            
                    
                    多桶排序
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.7.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#内置排序">
            
                    
                    内置排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.7.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#按度量排序">
            
                    
                    按度量排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.7.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#基于深度度量排序">
            
                    
                    基于“深度”度量排序
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.8" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#近似聚合">
            
                    
                    近似聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.8.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#统计去重后的数量">
            
                    
                    统计去重后的数量
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.8.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#百分位计算">
            
                    
                    百分位计算
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.9" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#通过聚合发现异常指标">
            
                    
                    通过聚合发现异常指标
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.9.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#significantterms演示">
            
                    
                    significant_terms 演示
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.10" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#DocValuesandFielddata">
            
                    
                    Doc Values and Fielddata
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="6.1.10.1" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#DocValues">
            
                    
                    Doc Values
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.2" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#深入理解DocValues">
            
                    
                    深入理解 Doc Values
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.3" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#聚合与分析">
            
                    
                    聚合与分析
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.4" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#限制内存使用">
            
                    
                    限制内存使用
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.5" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#Fielddata的过滤">
            
                    
                    Fielddata 的过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.6" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#预加载fielddata">
            
                    
                    预加载 fielddata
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="6.1.10.7" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#优化聚合查询">
            
                    
                    优化聚合查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="6.1.11" data-path="5_2_Aggregations.html">
            
                <a href="5_2_Aggregations.html#总结5_2">
            
                    
                    总结
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="7.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理位置">
            
                    
                    地理位置
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理坐标点">
            
                    
                    地理坐标点
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.1.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#经纬度坐标格式">
            
                    
                    经纬度坐标格式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#通过地理坐标点过滤">
            
                    
                    通过地理坐标点过滤
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理坐标盒模型过滤器">
            
                    
                    地理坐标盒模型过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理距离过滤器">
            
                    
                    地理距离过滤器
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.1.5" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#按距离排序">
            
                    
                    按距离排序
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohashes6">
            
                    
                    Geohashes
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.2.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohashes映射">
            
                    
                    Geohashes 映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.2.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohash单元查询">
            
                    
                    Geohash 单元查询
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理位置聚合">
            
                    
                    地理位置聚合
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.3.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理距离聚合">
            
                    
                    地理距离聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.3.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#Geohash网格聚合">
            
                    
                    Geohash 网格聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.3.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理边界聚合">
            
                    
                    地理边界聚合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="7.1.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#地理形状">
            
                    
                    地理形状
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="7.1.4.1" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#映射地理形状">
            
                    
                    映射地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.2" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#索引地理形状">
            
                    
                    索引地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.3" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#查询地理形状">
            
                    
                    查询地理形状
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="7.1.4.4" data-path="6_Geolocation.html">
            
                <a href="6_Geolocation.html#在查询中使用已索引的形状">
            
                    
                    在查询中使用已索引的形状
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="8.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#数据建模">
            
                    
                    数据建模
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#关联关系处理">
            
                    
                    关联关系处理
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.1.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#应用层联接">
            
                    
                    应用层联接
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#非规范化你的数据">
            
                    
                    非规范化你的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#字段折叠">
            
                    
                    字段折叠
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#非规范化和并发">
            
                    
                    非规范化和并发
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.1.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#解决并发问题">
            
                    
                    解决并发问题
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象">
            
                    
                    嵌套对象
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.2.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象映射">
            
                    
                    嵌套对象映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套对象查询">
            
                    
                    嵌套对象查询
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#使用嵌套字段排序">
            
                    
                    使用嵌套字段排序
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.2.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#嵌套聚合">
            
                    
                    嵌套聚合
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#父子关系文档">
            
                    
                    父-子关系文档
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.3.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#父子关系文档映射">
            
                    
                    父-子关系文档映射
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#构建父子文档索引">
            
                    
                    构建父-子文档索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#通过子文档查询父文档">
            
                    
                    通过子文档查询父文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#通过父文档查询子文档">
            
                    
                    通过父文档查询子文档
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#子文档聚合">
            
                    
                    子文档聚合
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.6" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#祖辈与孙辈关系">
            
                    
                    祖辈与孙辈关系
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.3.7" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#实际使用中的一些建议">
            
                    
                    实际使用中的一些建议
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="8.1.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容设计">
            
                    
                    扩容设计
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="8.1.4.1" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容的单元">
            
                    
                    扩容的单元
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.2" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#分片预分配">
            
                    
                    分片预分配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.3" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#海量分片">
            
                    
                    海量分片
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.4" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#容量规划">
            
                    
                    容量规划
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.5" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#副本分片">
            
                    
                    副本分片
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.6" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#多索引">
            
                    
                    多索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.7" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#基于时间的数据">
            
                    
                    基于时间的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.8" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#索引模板">
            
                    
                    索引模板
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.9" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#数据过期">
            
                    
                    数据过期
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.10" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#基于用户的数据">
            
                    
                    基于用户的数据
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.11" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#共享索引">
            
                    
                    共享索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.12" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#利用别名实现一个用户一个索引">
            
                    
                    利用别名实现一个用户一个索引
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.13" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#一个大的用户">
            
                    
                    一个大的用户
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="8.1.4.14" data-path="7_Modeling_your_data.html">
            
                <a href="7_Modeling_your_data.html#扩容并不是无限的">
            
                    
                    扩容并不是无限的
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    
        
        <li class="divider"></li>
        
        
    
        <li class="chapter " data-level="9.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#管理监控和部署">
            
                    
                    管理、监控和部署
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#监控">
            
                    
                    监控
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.1.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#Marvel监控">
            
                    
                    Marvel 监控
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群健康">
            
                    
                    集群健康
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#监控单个节点">
            
                    
                    监控单个节点
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群统计">
            
                    
                    集群统计
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#索引统计">
            
                    
                    索引统计
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#等待中的任务">
            
                    
                    等待中的任务
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.1.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#catAPI">
            
                    
                    cat API
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="9.1.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#部署">
            
                    
                    部署
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.2.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#硬件">
            
                    
                    硬件
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#Java虚拟机">
            
                    
                    Java 虚拟机
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#TransportClient与NodeClient">
            
                    
                    Transport Client 与 Node Client
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#配置管理">
            
                    
                    配置管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#重要配置的修改">
            
                    
                    重要配置的修改
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#不要触碰这些配置">
            
                    
                    不要触碰这些配置！
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#堆内存大小和交换">
            
                    
                    堆内存:大小和交换
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.8" data-path="8_Admin.html">
            
                <a href="8_Admin.html#文件描述符和MMap">
            
                    
                    文件描述符和 MMap
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.2.9" data-path="8_Admin.html">
            
                <a href="8_Admin.html#在生产之前，重温这个列表">
            
                    
                    在生产之前，重温这个列表
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="9.1.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#部署后">
            
                    
                    部署后
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="9.1.3.1" data-path="8_Admin.html">
            
                <a href="8_Admin.html#动态变更设置">
            
                    
                    动态变更设置
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.2" data-path="8_Admin.html">
            
                <a href="8_Admin.html#日志记录">
            
                    
                    日志记录
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.3" data-path="8_Admin.html">
            
                <a href="8_Admin.html#索引性能技巧">
            
                    
                    索引性能技巧
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.4" data-path="8_Admin.html">
            
                <a href="8_Admin.html#推迟分片分配">
            
                    
                    推迟分片分配
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.5" data-path="8_Admin.html">
            
                <a href="8_Admin.html#滚动重启">
            
                    
                    滚动重启
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.6" data-path="8_Admin.html">
            
                <a href="8_Admin.html#备份你的集群">
            
                    
                    备份你的集群
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.7" data-path="8_Admin.html">
            
                <a href="8_Admin.html#从快照恢复">
            
                    
                    从快照恢复
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="9.1.3.8" data-path="8_Admin.html">
            
                <a href="8_Admin.html#集群是活着的呼吸着的生命">
            
                    
                    集群是活着的、呼吸着的生命
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            本书使用 GitBook 发布
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="." >基础入门</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div class="search-plus" id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <div id="anchor-navigation-ex-navbar"><i class="fa fa-anchor"></i><ul><li><a href="#&#x57FA;&#x7840;&#x5165;&#x95E8;">&#x57FA;&#x7840;&#x5165;&#x95E8;</a></li><ul><li><a href="#&#x4F60;&#x77E5;&#x9053;&#x7684;&#x4E3A;&#x4E86;&#x641C;&#x7D22;">&#x4F60;&#x77E5;&#x9053;&#x7684;, &#x4E3A;&#x4E86;&#x641C;&#x7D22;&#x2026;  </a></li><ul><li><a href="#&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch">&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch  </a></li><li><a href="#&#x5B89;&#x88C5;Sense">&#x5B89;&#x88C5;Sense  </a></li><li><a href="#&#x548C;Elasticsearch&#x4EA4;&#x4E92;">&#x548C;Elasticsearch&#x4EA4;&#x4E92;  </a></li><li><a href="#&#x9762;&#x5411;&#x6587;&#x6863;">&#x9762;&#x5411;&#x6587;&#x6863;</a></li><li><a href="#&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;">&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;</a></li><li><a href="#&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;">&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;</a></li><li><a href="#&#x68C0;&#x7D22;&#x6587;&#x6863;">&#x68C0;&#x7D22;&#x6587;&#x6863;</a></li><li><a href="#&#x8F7B;&#x91CF;&#x641C;&#x7D22;">&#x8F7B;&#x91CF;&#x641C;&#x7D22;</a></li><li><a href="#&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;">&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;</a></li><li><a href="#&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;">&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;</a></li><li><a href="#&#x5168;&#x6587;&#x641C;&#x7D22;">&#x5168;&#x6587;&#x641C;&#x7D22;</a></li><li><a href="#&#x77ED;&#x8BED;&#x641C;&#x7D22;">&#x77ED;&#x8BED;&#x641C;&#x7D22;</a></li><li><a href="#&#x9AD8;&#x4EAE;&#x641C;&#x7D22;">&#x9AD8;&#x4EAE;&#x641C;&#x7D22;</a></li><li><a href="#&#x5206;&#x6790;">&#x5206;&#x6790;</a></li><li><a href="#&#x6559;&#x7A0B;&#x7ED3;&#x8BED;">&#x6559;&#x7A0B;&#x7ED3;&#x8BED;</a></li><li><a href="#&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;">&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;</a></li><li><a href="#&#x540E;&#x7EED;&#x6B65;&#x9AA4;">&#x540E;&#x7EED;&#x6B65;&#x9AA4;</a></li></ul><li><a href="#&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;">&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;</a></li><ul><li><a href="#&#x7A7A;&#x96C6;&#x7FA4;">&#x7A7A;&#x96C6;&#x7FA4;</a></li><li><a href="#&#x96C6;&#x7FA4;&#x5065;&#x5EB7;">&#x96C6;&#x7FA4;&#x5065;&#x5EB7;</a></li><li><a href="#&#x6DFB;&#x52A0;&#x7D22;&#x5F15;">&#x6DFB;&#x52A0;&#x7D22;&#x5F15;</a></li><li><a href="#&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;">&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;</a></li><li><a href="#&#x6C34;&#x5E73;&#x6269;&#x5BB9;">&#x6C34;&#x5E73;&#x6269;&#x5BB9;</a></li><li><a href="#&#x5E94;&#x5BF9;&#x6545;&#x969C;">&#x5E94;&#x5BF9;&#x6545;&#x969C;</a></li></ul><li><a href="#&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;">&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;</a></li><ul><li><a href="#&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;">&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;?  </a></li><li><a href="#&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;">&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;</a></li><li><a href="#&#x7D22;&#x5F15;&#x6587;&#x6863;">&#x7D22;&#x5F15;&#x6587;&#x6863;</a></li><li><a href="#&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;">&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;</a></li><li><a href="#&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;">&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;</a></li><li><a href="#&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;">&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;</a></li><li><a href="#&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;">&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;</a></li><li><a href="#&#x5220;&#x9664;&#x6587;&#x6863;">&#x5220;&#x9664;&#x6587;&#x6863;</a></li><li><a href="#&#x5904;&#x7406;&#x51B2;&#x7A81;">&#x5904;&#x7406;&#x51B2;&#x7A81;</a></li><li><a href="#&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;">&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;</a></li><li><a href="#&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;">&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;</a></li><li><a href="#&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;">&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;</a></li><li><a href="#&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;">&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;</a></li></ul></ul></ul></div><a href="#&#x57FA;&#x7840;&#x5165;&#x95E8;" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a><h1 id="&#x57FA;&#x7840;&#x5165;&#x95E8;"><a name="&#x57FA;&#x7840;&#x5165;&#x95E8;" class="anchor-navigation-ex-anchor" href="#&#x57FA;&#x7840;&#x5165;&#x95E8;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x57FA;&#x7840;&#x5165;&#x95E8;</h1>
<p><em>Elasticsearch</em> &#x662F;&#x4E00;&#x4E2A;&#x5B9E;&#x65F6;&#x7684;&#x5206;&#x5E03;&#x5F0F;&#x641C;&#x7D22;&#x5206;&#x6790;&#x5F15;&#x64CE;&#xFF0C; &#x5B83;&#x80FD;&#x8BA9;&#x4F60;&#x4EE5;&#x4E00;&#x4E2A;&#x4E4B;&#x524D;&#x4ECE;&#x672A;&#x6709;&#x8FC7;&#x7684;&#x901F;&#x5EA6;&#x548C;&#x89C4;&#x6A21;&#xFF0C;&#x53BB;&#x63A2;&#x7D22;&#x4F60;&#x7684;&#x6570;&#x636E;&#x3002; &#x5B83;&#x88AB;&#x7528;&#x4F5C;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x3001;&#x7ED3;&#x6784;&#x5316;&#x641C;&#x7D22;&#x3001;&#x5206;&#x6790;&#x4EE5;&#x53CA;&#x8FD9;&#x4E09;&#x4E2A;&#x529F;&#x80FD;&#x7684;&#x7EC4;&#x5408;&#xFF1A;</p>
<ul>
<li>Wikipedia &#x4F7F;&#x7528; Elasticsearch &#x63D0;&#x4F9B;&#x5E26;&#x6709;&#x9AD8;&#x4EAE;&#x7247;&#x6BB5;&#x7684;&#x5168;&#x6587;&#x641C;&#x7D22;&#xFF0C;&#x8FD8;&#x6709; <em>search-as-you-type</em> &#x548C; <em>did-you-mean</em> &#x7684;&#x5EFA;&#x8BAE;&#x3002;</li>
<li><em>&#x536B;&#x62A5;</em> &#x4F7F;&#x7528; Elasticsearch &#x5C06;&#x7F51;&#x7EDC;&#x793E;&#x4EA4;&#x6570;&#x636E;&#x7ED3;&#x5408;&#x5230;&#x8BBF;&#x5BA2;&#x65E5;&#x5FD7;&#x4E2D;&#xFF0C;&#x5B9E;&#x65F6;&#x7684;&#x7ED9;&#x5B83;&#x7684;&#x7F16;&#x8F91;&#x4EEC;&#x63D0;&#x4F9B;&#x516C;&#x4F17;&#x5BF9;&#x4E8E;&#x65B0;&#x6587;&#x7AE0;&#x7684;&#x53CD;&#x9988;&#x3002;</li>
<li>Stack Overflow &#x5C06;&#x5730;&#x7406;&#x4F4D;&#x7F6E;&#x67E5;&#x8BE2;&#x878D;&#x5165;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x4E2D;&#x53BB;&#xFF0C;&#x5E76;&#x4E14;&#x4F7F;&#x7528; <em>more-like-this</em> &#x63A5;&#x53E3;&#x53BB;&#x67E5;&#x627E;&#x76F8;&#x5173;&#x7684;&#x95EE;&#x9898;&#x4E0E;&#x7B54;&#x6848;&#x3002;</li>
<li>GitHub &#x4F7F;&#x7528; Elasticsearch &#x5BF9;1300&#x4EBF;&#x884C;&#x4EE3;&#x7801;&#x8FDB;&#x884C;&#x67E5;&#x8BE2;&#x3002;</li>
</ul>
<p>&#x7136;&#x800C; Elasticsearch &#x4E0D;&#x4EC5;&#x4EC5;&#x4E3A;&#x5DE8;&#x5934;&#x516C;&#x53F8;&#x670D;&#x52A1;&#x3002;&#x5B83;&#x4E5F;&#x5E2E;&#x52A9;&#x4E86;&#x5F88;&#x591A;&#x521D;&#x521B;&#x516C;&#x53F8;&#xFF0C;&#x50CF; Datadog &#x548C; Klout&#xFF0C; &#x5E2E;&#x52A9;&#x4ED6;&#x4EEC;&#x5C06;&#x60F3;&#x6CD5;&#x7528;&#x539F;&#x578B;&#x5B9E;&#x73B0;&#xFF0C;&#x5E76;&#x8F6C;&#x5316;&#x4E3A;&#x53EF;&#x6269;&#x5C55;&#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;Elasticsearch &#x80FD;&#x8FD0;&#x884C;&#x5728;&#x4F60;&#x7684;&#x7B14;&#x8BB0;&#x672C;&#x7535;&#x8111;&#x4E0A;&#xFF0C;&#x6216;&#x8005;&#x6269;&#x5C55;&#x5230;&#x4E0A;&#x767E;&#x53F0;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x53BB;&#x5904;&#x7406;PB&#x7EA7;&#x6570;&#x636E;&#x3002;</p>
<p>Elasticsearch &#x4E2D;&#x6CA1;&#x6709;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x7EC4;&#x4EF6;&#x662F;&#x5168;&#x65B0;&#x7684;&#x6216;&#x8005;&#x662F;&#x9769;&#x547D;&#x6027;&#x7684;&#x3002;&#x5168;&#x6587;&#x641C;&#x7D22;&#x5F88;&#x4E45;&#x4E4B;&#x524D;&#x5C31;&#x5DF2;&#x7ECF;&#x53EF;&#x4EE5;&#x505A;&#x5230;&#x4E86;&#xFF0C; &#x5C31;&#x50CF;&#x65E9;&#x5C31;&#x51FA;&#x73B0;&#x4E86;&#x7684;&#x5206;&#x6790;&#x7CFB;&#x7EDF;&#x548C;&#x5206;&#x5E03;&#x5F0F;&#x6570;&#x636E;&#x5E93;&#x3002; &#x9769;&#x547D;&#x6027;&#x7684;&#x6210;&#x679C;&#x5728;&#x4E8E;&#x5C06;&#x8FD9;&#x4E9B;&#x5355;&#x72EC;&#x7684;&#xFF0C;&#x6709;&#x7528;&#x7684;&#x7EC4;&#x4EF6;&#x878D;&#x5408;&#x5230;&#x4E00;&#x4E2A;&#x5355;&#x4E00;&#x7684;&#x3001;&#x4E00;&#x81F4;&#x7684;&#x3001;&#x5B9E;&#x65F6;&#x7684;&#x5E94;&#x7528;&#x4E2D;&#x3002;&#x5B83;&#x5BF9;&#x4E8E;&#x521D;&#x5B66;&#x8005;&#x800C;&#x8A00;&#x6709;&#x4E00;&#x4E2A;&#x8F83;&#x4F4E;&#x7684;&#x95E8;&#x69DB;&#xFF0C; &#x800C;&#x5F53;&#x4F60;&#x7684;&#x6280;&#x80FD;&#x63D0;&#x5347;&#x6216;&#x9700;&#x6C42;&#x589E;&#x52A0;&#x65F6;&#xFF0C;&#x5B83;&#x4E5F;&#x59CB;&#x7EC8;&#x80FD;&#x6EE1;&#x8DB3;&#x4F60;&#x7684;&#x9700;&#x6C42;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x73B0;&#x5728;&#x6253;&#x5F00;&#x8FD9;&#x672C;&#x4E66;&#xFF0C;&#x662F;&#x56E0;&#x4E3A;&#x4F60;&#x62E5;&#x6709;&#x6570;&#x636E;&#x3002;&#x9664;&#x975E;&#x4F60;&#x51C6;&#x5907;&#x4F7F;&#x7528;&#x5B83; <em>&#x505A;&#x4E9B;&#x4EC0;&#x4E48;</em> &#xFF0C;&#x5426;&#x5219;&#x62E5;&#x6709;&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x5C06;&#x6CA1;&#x6709;&#x610F;&#x4E49;&#x3002;</p>
<p>&#x4E0D;&#x5E78;&#x7684;&#x662F;&#xFF0C;&#x5927;&#x90E8;&#x5206;&#x6570;&#x636E;&#x5E93;&#x5728;&#x4ECE;&#x4F60;&#x7684;&#x6570;&#x636E;&#x4E2D;&#x63D0;&#x53D6;&#x53EF;&#x7528;&#x77E5;&#x8BC6;&#x65F6;&#x51FA;&#x4E4E;&#x610F;&#x6599;&#x7684;&#x4F4E;&#x6548;&#x3002; &#x5F53;&#x7136;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x65F6;&#x95F4;&#x6233;&#x6216;&#x7CBE;&#x786E;&#x503C;&#x8FDB;&#x884C;&#x8FC7;&#x6EE4;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x4EEC;&#x80FD;&#x591F;&#x8FDB;&#x884C;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x3001;&#x5904;&#x7406;&#x540C;&#x4E49;&#x8BCD;&#x3001;&#x901A;&#x8FC7;&#x76F8;&#x5173;&#x6027;&#x7ED9;&#x6587;&#x6863;&#x8BC4;&#x5206;&#x4E48;&#xFF1F; &#x5B83;&#x4EEC;&#x4ECE;&#x540C;&#x6837;&#x7684;&#x6570;&#x636E;&#x4E2D;&#x751F;&#x6210;&#x5206;&#x6790;&#x4E0E;&#x805A;&#x5408;&#x6570;&#x636E;&#x5417;&#xFF1F;&#x6700;&#x91CD;&#x8981;&#x7684;&#x662F;&#xFF0C;&#x5B83;&#x4EEC;&#x80FD;&#x5B9E;&#x65F6;&#x5730;&#x505A;&#x5230;&#x4E0A;&#x9762;&#x7684;&#x90A3;&#x4E9B;&#x800C;&#x4E0D;&#x7ECF;&#x8FC7;&#x5927;&#x578B;&#x6279;&#x5904;&#x7406;&#x7684;&#x4EFB;&#x52A1;&#x4E48;&#xFF1F;</p>
<p>&#x8FD9;&#x5C31;&#x662F; Elasticsearch &#x8131;&#x9896;&#x800C;&#x51FA;&#x7684;&#x5730;&#x65B9;&#xFF1A;Elasticsearch &#x9F13;&#x52B1;&#x4F60;&#x53BB;&#x63A2;&#x7D22;&#x4E0E;&#x5229;&#x7528;&#x6570;&#x636E;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x56E0;&#x4E3A;&#x67E5;&#x8BE2;&#x6570;&#x636E;&#x592A;&#x56F0;&#x96BE;&#xFF0C;&#x5C31;&#x8BA9;&#x5B83;&#x4EEC;&#x70C2;&#x5728;&#x6570;&#x636E;&#x4ED3;&#x5E93;&#x91CC;&#x9762;&#x3002;</p>
<p>Elasticsearch &#x5C06;&#x6210;&#x4E3A;&#x4F60;&#x6700;&#x597D;&#x7684;&#x670B;&#x53CB;&#x3002;</p>
<h2 id="&#x4F60;&#x77E5;&#x9053;&#x7684;&#x4E3A;&#x4E86;&#x641C;&#x7D22;"><a name="&#x4F60;&#x77E5;&#x9053;&#x7684;&#x4E3A;&#x4E86;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x4F60;&#x77E5;&#x9053;&#x7684;&#x4E3A;&#x4E86;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4F60;&#x77E5;&#x9053;&#x7684;, &#x4E3A;&#x4E86;&#x641C;&#x7D22;&#x2026;  </h2>
<p>Elasticsearch &#x662F;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;&#x7684;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#xFF0C;&#x5EFA;&#x7ACB;&#x5728;&#x4E00;&#x4E2A;&#x5168;&#x6587;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x5E93; <a href="https://lucene.apache.org/core/" target="_blank">Apache Lucene&#x2122;</a> &#x57FA;&#x7840;&#x4E4B;&#x4E0A;&#x3002; Lucene &#x53EF;&#x4EE5;&#x8BF4;&#x662F;&#x5F53;&#x4E0B;&#x6700;&#x5148;&#x8FDB;&#x3001;&#x9AD8;&#x6027;&#x80FD;&#x3001;&#x5168;&#x529F;&#x80FD;&#x7684;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x5E93;--&#x65E0;&#x8BBA;&#x662F;&#x5F00;&#x6E90;&#x8FD8;&#x662F;&#x79C1;&#x6709;&#x3002;</p>
<p>&#x4F46;&#x662F; Lucene &#x4EC5;&#x4EC5;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x5E93;&#x3002;&#x4E3A;&#x4E86;&#x5145;&#x5206;&#x53D1;&#x6325;&#x5176;&#x529F;&#x80FD;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x4F7F;&#x7528; Java &#x5E76;&#x5C06; Lucene &#x76F4;&#x63A5;&#x96C6;&#x6210;&#x5230;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x3002; &#x66F4;&#x7CDF;&#x7CD5;&#x7684;&#x662F;&#xFF0C;&#x60A8;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x83B7;&#x5F97;&#x4FE1;&#x606F;&#x68C0;&#x7D22;&#x5B66;&#x4F4D;&#x624D;&#x80FD;&#x4E86;&#x89E3;&#x5176;&#x5DE5;&#x4F5C;&#x539F;&#x7406;&#x3002;Lucene <em>&#x975E;&#x5E38;</em> &#x590D;&#x6742;&#x3002;</p>
<p>Elasticsearch &#x4E5F;&#x662F;&#x4F7F;&#x7528; Java &#x7F16;&#x5199;&#x7684;&#xFF0C;&#x5B83;&#x7684;&#x5185;&#x90E8;&#x4F7F;&#x7528; Lucene &#x505A;&#x7D22;&#x5F15;&#x4E0E;&#x641C;&#x7D22;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x7684;&#x76EE;&#x7684;&#x662F;&#x4F7F;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x53D8;&#x5F97;&#x7B80;&#x5355;&#xFF0C; &#x901A;&#x8FC7;&#x9690;&#x85CF; Lucene &#x7684;&#x590D;&#x6742;&#x6027;&#xFF0C;&#x53D6;&#x800C;&#x4EE3;&#x4E4B;&#x7684;&#x63D0;&#x4F9B;&#x4E00;&#x5957;&#x7B80;&#x5355;&#x4E00;&#x81F4;&#x7684; RESTful API&#x3002;</p>
<p>&#x7136;&#x800C;&#xFF0C;Elasticsearch &#x4E0D;&#x4EC5;&#x4EC5;&#x662F; Lucene&#xFF0C;&#x5E76;&#x4E14;&#x4E5F;&#x4E0D;&#x4EC5;&#x4EC5;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x5168;&#x6587;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x3002; &#x5B83;&#x53EF;&#x4EE5;&#x88AB;&#x4E0B;&#x9762;&#x8FD9;&#x6837;&#x51C6;&#x786E;&#x7684;&#x5F62;&#x5BB9;&#xFF1A;</p>
<ul>
<li>&#x4E00;&#x4E2A;&#x5206;&#x5E03;&#x5F0F;&#x7684;&#x5B9E;&#x65F6;&#x6587;&#x6863;&#x5B58;&#x50A8;&#xFF0C;<em>&#x6BCF;&#x4E2A;&#x5B57;&#x6BB5;</em> &#x53EF;&#x4EE5;&#x88AB;&#x7D22;&#x5F15;&#x4E0E;&#x641C;&#x7D22;</li>
<li>&#x4E00;&#x4E2A;&#x5206;&#x5E03;&#x5F0F;&#x5B9E;&#x65F6;&#x5206;&#x6790;&#x641C;&#x7D22;&#x5F15;&#x64CE;</li>
<li>&#x80FD;&#x80DC;&#x4EFB;&#x4E0A;&#x767E;&#x4E2A;&#x670D;&#x52A1;&#x8282;&#x70B9;&#x7684;&#x6269;&#x5C55;&#xFF0C;&#x5E76;&#x652F;&#x6301; PB &#x7EA7;&#x522B;&#x7684;&#x7ED3;&#x6784;&#x5316;&#x6216;&#x8005;&#x975E;&#x7ED3;&#x6784;&#x5316;&#x6570;&#x636E;</li>
</ul>
<p>Elasticsearch &#x5C06;&#x6240;&#x6709;&#x7684;&#x529F;&#x80FD;&#x6253;&#x5305;&#x6210;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x670D;&#x52A1;&#xFF0C;&#x8FD9;&#x6837;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x7A0B;&#x5E8F;&#x4E0E;&#x5B83;&#x63D0;&#x4F9B;&#x7684;&#x7B80;&#x5355;&#x7684; RESTful API &#x8FDB;&#x884C;&#x901A;&#x4FE1;&#xFF0C; &#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x81EA;&#x5DF1;&#x559C;&#x6B22;&#x7684;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x5145;&#x5F53; web &#x5BA2;&#x6237;&#x7AEF;&#xFF0C;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x547D;&#x4EE4;&#x884C;&#xFF08;&#x53BB;&#x5145;&#x5F53;&#x8FD9;&#x4E2A;&#x5BA2;&#x6237;&#x7AEF;&#xFF09;&#x3002;</p>
<p>&#x5C31; Elasticsearch &#x800C;&#x8A00;&#xFF0C;&#x8D77;&#x6B65;&#x5F88;&#x7B80;&#x5355;&#x3002;&#x5BF9;&#x4E8E;&#x521D;&#x5B66;&#x8005;&#x6765;&#x8BF4;&#xFF0C;&#x5B83;&#x9884;&#x8BBE;&#x4E86;&#x4E00;&#x4E9B;&#x9002;&#x5F53;&#x7684;&#x9ED8;&#x8BA4;&#x503C;&#xFF0C;&#x5E76;&#x9690;&#x85CF;&#x4E86;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;&#x7406;&#x8BBA;&#x77E5;&#x8BC6;&#x3002; &#x5B83; <em>&#x5F00;&#x7BB1;&#x5373;&#x7528;</em> &#x3002;&#x53EA;&#x9700;&#x6700;&#x5C11;&#x7684;&#x7406;&#x89E3;&#xFF0C;&#x4F60;&#x5F88;&#x5FEB;&#x5C31;&#x80FD;&#x5177;&#x6709;&#x751F;&#x4EA7;&#x529B;&#x3002;</p>
<p>&#x968F;&#x7740;&#x4F60;&#x77E5;&#x8BC6;&#x7684;&#x79EF;&#x7D2F;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5229;&#x7528; Elasticsearch &#x66F4;&#x591A;&#x7684;&#x9AD8;&#x7EA7;&#x7279;&#x6027;&#xFF0C;&#x5B83;&#x7684;&#x6574;&#x4E2A;&#x5F15;&#x64CE;&#x662F;&#x53EF;&#x914D;&#x7F6E;&#x5E76;&#x4E14;&#x7075;&#x6D3B;&#x7684;&#x3002; &#x4ECE;&#x4F17;&#x591A;&#x9AD8;&#x7EA7;&#x7279;&#x6027;&#x4E2D;&#xFF0C;&#x6311;&#x9009;&#x6070;&#x5F53;&#x53BB;&#x4FEE;&#x9970;&#x7684; Elasticsearch&#xFF0C;&#x4F7F;&#x5B83;&#x80FD;&#x89E3;&#x51B3;&#x4F60;&#x672C;&#x5730;&#x9047;&#x5230;&#x7684;&#x95EE;&#x9898;&#x3002;</p>
<p>&#x4F60;&#x53EF;&#x4EE5;&#x514D;&#x8D39;&#x4E0B;&#x8F7D;&#xFF0C;&#x4F7F;&#x7528;&#xFF0C;&#x4FEE;&#x6539; Elasticsearch&#x3002;&#x5B83;&#x5728; <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">Apache 2 license</a> &#x534F;&#x8BAE;&#x4E0B;&#x53D1;&#x5E03;&#x7684;&#xFF0C; &#x8FD9;&#x662F;&#x4F17;&#x591A;&#x7075;&#x6D3B;&#x7684;&#x5F00;&#x6E90;&#x534F;&#x8BAE;&#x4E4B;&#x4E00;&#x3002;Elasticsearch &#x7684;&#x6E90;&#x7801;&#x88AB;&#x6258;&#x7BA1;&#x5728; Github &#x4E0A; <a href="https://github.com/elastic/elasticsearch" target="_blank">github.com/elastic/elasticsearch</a>&#x3002; &#x5982;&#x679C;&#x4F60;&#x60F3;&#x52A0;&#x5165;&#x6211;&#x4EEC;&#x8FD9;&#x4E2A;&#x4EE4;&#x4EBA;&#x60CA;&#x5947;&#x7684; contributors &#x793E;&#x533A;&#xFF0C;&#x770B;&#x8FD9;&#x91CC; <a href="https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md" target="_blank">Contributing to Elasticsearch</a>&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x5BF9; Elasticsearch &#x6709;&#x4EFB;&#x4F55;&#x76F8;&#x5173;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x5305;&#x62EC;&#x7279;&#x5B9A;&#x7684;&#x7279;&#x6027;(specific features)&#x3001;&#x8BED;&#x8A00;&#x5BA2;&#x6237;&#x7AEF;(language clients)&#x3001;&#x63D2;&#x4EF6;(plugins)&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x91CC; <a href="https://discuss.elastic.co/" target="_blank">discuss.elastic.co</a> &#x52A0;&#x5165;&#x8BA8;&#x8BBA;&#x3002;</p>
<hr>
<blockquote>
<p> <strong>&#x56DE;&#x5FC6;&#x65F6;&#x5149;</strong></p>
<p> &#x8BB8;&#x591A;&#x5E74;&#x524D;&#xFF0C;&#x4E00;&#x4E2A;&#x521A;&#x7ED3;&#x5A5A;&#x7684;&#x540D;&#x53EB; Shay Banon &#x7684;&#x5931;&#x4E1A;&#x5F00;&#x53D1;&#x8005;&#xFF0C;&#x8DDF;&#x7740;&#x4ED6;&#x7684;&#x59BB;&#x5B50;&#x53BB;&#x4E86;&#x4F26;&#x6566;&#xFF0C;&#x4ED6;&#x7684;&#x59BB;&#x5B50;&#x5728;&#x90A3;&#x91CC;&#x5B66;&#x4E60;&#x53A8;&#x5E08;&#x3002; &#x5728;&#x5BFB;&#x627E;&#x4E00;&#x4E2A;&#x8D5A;&#x94B1;&#x7684;&#x5DE5;&#x4F5C;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4E3A;&#x4E86;&#x7ED9;&#x4ED6;&#x7684;&#x59BB;&#x5B50;&#x505A;&#x4E00;&#x4E2A;&#x98DF;&#x8C31;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#xFF0C;&#x4ED6;&#x5F00;&#x59CB;&#x4F7F;&#x7528; Lucene &#x7684;&#x4E00;&#x4E2A;&#x65E9;&#x671F;&#x7248;&#x672C;&#x3002;</p>
<p> &#x76F4;&#x63A5;&#x4F7F;&#x7528; Lucene &#x662F;&#x5F88;&#x96BE;&#x7684;&#xFF0C;&#x56E0;&#x6B64; Shay &#x5F00;&#x59CB;&#x505A;&#x4E00;&#x4E2A;&#x62BD;&#x8C61;&#x5C42;&#xFF0C;Java &#x5F00;&#x53D1;&#x8005;&#x4F7F;&#x7528;&#x5B83;&#x53EF;&#x4EE5;&#x5F88;&#x7B80;&#x5355;&#x7684;&#x7ED9;&#x4ED6;&#x4EEC;&#x7684;&#x7A0B;&#x5E8F;&#x6DFB;&#x52A0;&#x641C;&#x7D22;&#x529F;&#x80FD;&#x3002; &#x4ED6;&#x53D1;&#x5E03;&#x4E86;&#x4ED6;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;&#x9879;&#x76EE; Compass&#x3002;</p>
<p> &#x540E;&#x6765; Shay &#x83B7;&#x5F97;&#x4E86;&#x4E00;&#x4EFD;&#x5DE5;&#x4F5C;&#xFF0C;&#x4E3B;&#x8981;&#x662F;&#x9AD8;&#x6027;&#x80FD;&#xFF0C;&#x5206;&#x5E03;&#x5F0F;&#x73AF;&#x5883;&#x4E0B;&#x7684;&#x5185;&#x5B58;&#x6570;&#x636E;&#x7F51;&#x683C;&#x3002;&#x8FD9;&#x4E2A;&#x5BF9;&#x4E8E;&#x9AD8;&#x6027;&#x80FD;&#xFF0C;&#x5B9E;&#x65F6;&#xFF0C;&#x5206;&#x5E03;&#x5F0F;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x7684;&#x9700;&#x6C42;&#x5C24;&#x4E3A;&#x7A81;&#x51FA;&#xFF0C; &#x4ED6;&#x51B3;&#x5B9A;&#x91CD;&#x5199; Compass&#xFF0C;&#x628A;&#x5B83;&#x53D8;&#x4E3A;&#x4E00;&#x4E2A;&#x72EC;&#x7ACB;&#x7684;&#x670D;&#x52A1;&#x5E76;&#x53D6;&#x540D; Elasticsearch&#x3002;</p>
<p> &#x7B2C;&#x4E00;&#x4E2A;&#x516C;&#x5F00;&#x7248;&#x672C;&#x5728;2010&#x5E74;2&#x6708;&#x53D1;&#x5E03;&#xFF0C;&#x4ECE;&#x6B64;&#x4EE5;&#x540E;&#xFF0C;Elasticsearch &#x5DF2;&#x7ECF;&#x6210;&#x4E3A;&#x4E86; Github &#x4E0A;&#x6700;&#x6D3B;&#x8DC3;&#x7684;&#x9879;&#x76EE;&#x4E4B;&#x4E00;&#xFF0C;&#x4ED6;&#x62E5;&#x6709;&#x8D85;&#x8FC7;300&#x540D; contributors(&#x76EE;&#x524D;736&#x540D; contributors )&#x3002; &#x4E00;&#x5BB6;&#x516C;&#x53F8;&#x5DF2;&#x7ECF;&#x5F00;&#x59CB;&#x56F4;&#x7ED5; Elasticsearch &#x63D0;&#x4F9B;&#x5546;&#x4E1A;&#x670D;&#x52A1;&#xFF0C;&#x5E76;&#x5F00;&#x53D1;&#x65B0;&#x7684;&#x7279;&#x6027;&#xFF0C;&#x4F46;&#x662F;&#xFF0C;Elasticsearch &#x5C06;&#x6C38;&#x8FDC;&#x5F00;&#x6E90;&#x5E76;&#x5BF9;&#x6240;&#x6709;&#x4EBA;&#x53EF;&#x7528;&#x3002;</p>
<p> &#x636E;&#x8BF4;&#xFF0C;Shay &#x7684;&#x59BB;&#x5B50;&#x8FD8;&#x5728;&#x7B49;&#x7740;&#x5979;&#x7684;&#x98DF;&#x8C31;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x2026;</p>
</blockquote>
<hr>
<h3 id="&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch"><a name="&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch" class="anchor-navigation-ex-anchor" href="#&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C;Elasticsearch  </h3>
<p>&#x60F3;&#x7528;&#x6700;&#x7B80;&#x5355;&#x7684;&#x65B9;&#x5F0F;&#x53BB;&#x7406;&#x89E3; Elasticsearch &#x80FD;&#x4E3A;&#x4F60;&#x505A;&#x4EC0;&#x4E48;&#xFF0C;&#x90A3;&#x5C31;&#x662F;&#x4F7F;&#x7528;&#x5B83;&#x4E86;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x5F00;&#x59CB;&#x5427;&#xFF01;</p>
<p>&#x5B89;&#x88C5; Elasticsearch &#x4E4B;&#x524D;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x5148;&#x5B89;&#x88C5;&#x4E00;&#x4E2A;&#x8F83;&#x65B0;&#x7684;&#x7248;&#x672C;&#x7684; Java&#xFF0C;&#x6700;&#x597D;&#x7684;&#x9009;&#x62E9;&#x662F;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4ECE; <a href="http://www.java.com/" target="_blank"><em>www.java.com</em></a> &#x83B7;&#x5F97;&#x5B98;&#x65B9;&#x63D0;&#x4F9B;&#x7684;&#x6700;&#x65B0;&#x7248;&#x672C;&#x7684; Java&#x3002;</p>
<p>&#x4E4B;&#x540E;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4ECE; elastic &#x7684;&#x5B98;&#x7F51; <a href="https://www.elastic.co/downloads/elasticsearch" target="_blank"><em>elastic.co/downloads/elasticsearch</em></a> &#x83B7;&#x53D6;&#x6700;&#x65B0;&#x7248;&#x672C;&#x7684; Elasticsearch&#x3002;</p>
<p>&#x8981;&#x60F3;&#x5B89;&#x88C5; Elasticsearch&#xFF0C;&#x5148;&#x4E0B;&#x8F7D;&#x5E76;&#x89E3;&#x538B;&#x9002;&#x5408;&#x4F60;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7684; Elasticsearch &#x7248;&#x672C;&#x3002;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x4E86;&#x89E3;&#x66F4;&#x591A;&#x7684;&#x4FE1;&#x606F;&#xFF0C; &#x53EF;&#x4EE5;&#x67E5;&#x770B; Elasticsearch &#x53C2;&#x8003;&#x624B;&#x518C;&#x91CC;&#x8FB9;&#x7684;&#x5B89;&#x88C5;&#x90E8;&#x5206;&#xFF0C;&#x8FD9;&#x8FB9;&#x7ED9;&#x51FA;&#x7684;&#x94FE;&#x63A5;&#x6307;&#x5411;&#x5B89;&#x88C5;&#x8BF4;&#x660E; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/_installation.html" target="_blank">Installation</a>&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;"> &#x5F53;&#x4F60;&#x51C6;&#x5907;&#x5728;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x5B89;&#x88C5; Elasticsearch &#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5728; <a href="http://www.elastic.co/downloads/elasticsearch" target="_blank">&#x5B98;&#x7F51;&#x4E0B;&#x8F7D;&#x5730;&#x5740;</a> &#x627E; &#x5230; Debian &#x6216;&#x8005; RPM &#x5305;&#xFF0C;&#x9664;&#x6B64;&#x4E4B;&#x5916;&#xFF0C;&#x4F60;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x5B98;&#x65B9;&#x652F;&#x6301;&#x7684; <a href="https://github.com/elasticsearch/puppet-elasticsearch" target="_blank">Puppet module</a> &#x6216;&#x8005; <a href="https://github.com/elasticsearch/cookbook-elasticsearch" target="_blank">Chef cookbook</a>&#x3002;</p>
</blockquote>
<p>&#x5F53;&#x4F60;&#x89E3;&#x538B;&#x597D;&#x4E86;&#x5F52;&#x6863;&#x6587;&#x4EF6;&#x4E4B;&#x540E;&#xFF0C;Elasticsearch &#x5DF2;&#x7ECF;&#x51C6;&#x5907;&#x597D;&#x8FD0;&#x884C;&#x4E86;&#x3002;&#x6309;&#x7167;&#x4E0B;&#x9762;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x5728;&#x524D;&#x53F0;(foregroud)&#x542F;&#x52A8; Elasticsearch&#xFF1A;</p>
<pre><code class="lang-sh"><span class="hljs-built_in">cd</span> elasticsearch-&lt;version&gt;
./bin/elasticsearch  &lt;1&gt; &lt;2&gt;
</code></pre>
<blockquote>
<p>  <img src="assets/1.png" alt="img">  &#x5982;&#x679C;&#x4F60;&#x60F3;&#x628A; Elasticsearch &#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x5B88;&#x62A4;&#x8FDB;&#x7A0B;&#x5728;&#x540E;&#x53F0;&#x8FD0;&#x884C;&#xFF0C;&#x90A3;&#x4E48;&#x53EF;&#x4EE5;&#x5728;&#x540E;&#x9762;&#x6DFB;&#x52A0;&#x53C2;&#x6570; <code>-d</code> &#x3002; </p>
<p>  <img src="assets/2.png" alt="img">  &#x5982;&#x679C;&#x4F60;&#x662F;&#x5728; Windows &#x4E0A;&#x9762;&#x8FD0;&#x884C; Elasticseach&#xFF0C;&#x4F60;&#x5E94;&#x8BE5;&#x8FD0;&#x884C; <code>bin\elasticsearch.bat</code> &#x800C;&#x4E0D;&#x662F; <code>bin\elasticsearch</code> &#x3002;</p>
</blockquote>
<p>&#x6D4B;&#x8BD5; Elasticsearch &#x662F;&#x5426;&#x542F;&#x52A8;&#x6210;&#x529F;&#xFF0C;&#x53EF;&#x4EE5;&#x6253;&#x5F00;&#x53E6;&#x4E00;&#x4E2A;&#x7EC8;&#x7AEF;&#xFF0C;&#x6267;&#x884C;&#x4EE5;&#x4E0B;&#x64CD;&#x4F5C;&#xFF1A;</p>
<pre><code class="lang-sh">curl <span class="hljs-string">&apos;http://localhost:9200/?pretty&apos;</span>
</code></pre>
<p>TIP&#xFF1A;&#x5982;&#x679C;&#x4F60;&#x662F;&#x5728; Windows &#x4E0A;&#x9762;&#x8FD0;&#x884C; Elasticsearch&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4ECE; <a href="http://curl.haxx.se/download.html" target="_blank"><code>http://curl.haxx.se/download.html</code></a> &#x4E2D;&#x4E0B;&#x8F7D; cURL&#x3002; cURL &#x7ED9;&#x4F60;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x79CD;&#x5C06;&#x8BF7;&#x6C42;&#x63D0;&#x4EA4;&#x5230; Elasticsearch &#x7684;&#x4FBF;&#x6377;&#x65B9;&#x5F0F;&#xFF0C;&#x5E76;&#x4E14;&#x5B89;&#x88C5; cURL &#x4E4B;&#x540E;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x590D;&#x5236;&#x4E0E;&#x7C98;&#x8D34;&#x53BB;&#x5C1D;&#x8BD5;&#x4E66;&#x4E2D;&#x7684;&#x8BB8;&#x591A;&#x4F8B;&#x5B50;&#x3002;</p>
<p>&#x4F60;&#x5E94;&#x8BE5;&#x5F97;&#x5230;&#x548C;&#x4E0B;&#x9762;&#x7C7B;&#x4F3C;&#x7684;&#x54CD;&#x5E94;(response)&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;name&quot;</span> : <span class="hljs-string">&quot;Tom Foster&quot;</span>,
  <span class="hljs-string">&quot;cluster_name&quot;</span> : <span class="hljs-string">&quot;elasticsearch&quot;</span>,
  <span class="hljs-string">&quot;version&quot;</span> : {
    <span class="hljs-string">&quot;number&quot;</span> : <span class="hljs-string">&quot;2.1.0&quot;</span>,
    <span class="hljs-string">&quot;build_hash&quot;</span> : <span class="hljs-string">&quot;72cd1f1a3eee09505e036106146dc1949dc5dc87&quot;</span>,
    <span class="hljs-string">&quot;build_timestamp&quot;</span> : <span class="hljs-string">&quot;2015-11-18T22:40:03Z&quot;</span>,
    <span class="hljs-string">&quot;build_snapshot&quot;</span> : <span class="hljs-literal">false</span>,
    <span class="hljs-string">&quot;lucene_version&quot;</span> : <span class="hljs-string">&quot;5.3.1&quot;</span>
  },
  <span class="hljs-string">&quot;tagline&quot;</span> : <span class="hljs-string">&quot;You Know, for Search&quot;</span>
}
</code></pre>
<p>&#x8FD9;&#x5C31;&#x610F;&#x5473;&#x7740;&#x4F60;&#x73B0;&#x5728;&#x5DF2;&#x7ECF;&#x542F;&#x52A8;&#x5E76;&#x8FD0;&#x884C;&#x4E00;&#x4E2A; Elasticsearch &#x8282;&#x70B9;&#x4E86;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x7528;&#x5B83;&#x505A;&#x5B9E;&#x9A8C;&#x4E86;&#x3002; &#x5355;&#x4E2A; <em>&#x8282;&#x70B9;</em> &#x53EF;&#x4EE5;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x8FD0;&#x884C;&#x4E2D;&#x7684; Elasticsearch &#x7684;&#x5B9E;&#x4F8B;&#x3002; &#x800C;&#x4E00;&#x4E2A; &#x96C6;&#x7FA4; &#x662F;&#x4E00;&#x7EC4;&#x62E5;&#x6709;&#x76F8;&#x540C; <code>cluster.name</code> &#x7684;&#x8282;&#x70B9;&#xFF0C; &#x4ED6;&#x4EEC;&#x80FD;&#x4E00;&#x8D77;&#x5DE5;&#x4F5C;&#x5E76;&#x5171;&#x4EAB;&#x6570;&#x636E;&#xFF0C;&#x8FD8;&#x63D0;&#x4F9B;&#x5BB9;&#x9519;&#x4E0E;&#x53EF;&#x4F38;&#x7F29;&#x6027;&#x3002;(&#x5F53;&#x7136;&#xFF0C;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x8282;&#x70B9;&#x4E5F;&#x53EF;&#x4EE5;&#x7EC4;&#x6210;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;) &#x4F60;&#x53EF;&#x4EE5;&#x5728; <code>elasticsearch.yml</code> &#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4E2D; &#x4FEE;&#x6539; <code>cluster.name</code> &#xFF0C;&#x8BE5;&#x6587;&#x4EF6;&#x4F1A;&#x5728;&#x8282;&#x70B9;&#x542F;&#x52A8;&#x65F6;&#x52A0;&#x8F7D; (&#x8BD1;&#x8005;&#x6CE8;&#xFF1A;&#x8FD9;&#x4E2A;&#x91CD;&#x542F;&#x670D;&#x52A1;&#x540E;&#x624D;&#x4F1A;&#x751F;&#x6548;)&#x3002; &#x5173;&#x4E8E;&#x4E0A;&#x9762;&#x7684; <code>cluster.name</code> &#x4EE5;&#x53CA;&#x5176;&#x5B83; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configuration-changes.html" target="_blank">Important Configuration Changes</a> &#x4FE1;&#x606F;&#xFF0C; &#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x672C;&#x4E66;&#x540E;&#x9762;&#x63D0;&#x4F9B;&#x7684;&#x751F;&#x4EA7;&#x90E8;&#x7F72;&#x7AE0;&#x8282;&#x627E;&#x5230;&#x66F4;&#x591A;&#x3002;</p>
<p>TIP&#xFF1A;&#x770B;&#x5230;&#x4E0B;&#x65B9;&#x7684; View in Sense &#x7684;&#x4F8B;&#x5B50;&#x4E86;&#x4E48;&#xFF1F;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/running-elasticsearch.html#sense" target="_blank">Install the Sense console</a> &#x4F7F;&#x7528;&#x4F60;&#x81EA;&#x5DF1;&#x7684; Elasticsearch &#x96C6;&#x7FA4;&#x53BB;&#x8FD0;&#x884C;&#x8FD9;&#x672C;&#x4E66;&#x4E2D;&#x7684;&#x4F8B;&#x5B50;&#xFF0C; &#x67E5;&#x770B;&#x4F1A;&#x6709;&#x600E;&#x6837;&#x7684;&#x7ED3;&#x679C;&#x3002;</p>
<p>&#x5F53; Elastcisearch &#x5728;&#x524D;&#x53F0;&#x8FD0;&#x884C;&#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6309; Ctrl+C &#x53BB;&#x505C;&#x6B62;&#x3002;</p>
<h3 id="&#x5B89;&#x88C5;Sense"><a name="&#x5B89;&#x88C5;Sense" class="anchor-navigation-ex-anchor" href="#&#x5B89;&#x88C5;Sense"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5B89;&#x88C5;Sense  </h3>
<p>Sense &#x662F;&#x4E00;&#x4E2A; <a href="https://www.elastic.co/guide/en/kibana/4.6/index.html" target="_blank">Kibana</a> &#x5E94;&#x7528; &#x5B83;&#x63D0;&#x4F9B;&#x4EA4;&#x4E92;&#x5F0F;&#x7684;&#x63A7;&#x5236;&#x53F0;&#xFF0C;&#x901A;&#x8FC7;&#x4F60;&#x7684;&#x6D4F;&#x89C8;&#x5668;&#x76F4;&#x63A5;&#x5411; Elasticsearch &#x63D0;&#x4EA4;&#x8BF7;&#x6C42;&#x3002; &#x8FD9;&#x672C;&#x4E66;&#x7684;&#x5728;&#x7EBF;&#x7248;&#x672C;&#x5305;&#x542B;&#x6709;&#x4E00;&#x4E2A; View in Sense &#x7684;&#x94FE;&#x63A5;&#xFF0C;&#x91CC;&#x9762;&#x6709;&#x8BB8;&#x591A;&#x4EE3;&#x7801;&#x793A;&#x4F8B;&#x3002;&#x5F53;&#x70B9;&#x51FB;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5B83;&#x4F1A;&#x6253;&#x5F00;&#x4E00;&#x4E2A;&#x4EE3;&#x7801;&#x793A;&#x4F8B;&#x7684;Sense&#x63A7;&#x5236;&#x53F0;&#x3002; &#x4F60;&#x4E0D;&#x5FC5;&#x5B89;&#x88C5; Sense&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x5141;&#x8BB8;&#x4F60;&#x5728;&#x672C;&#x5730;&#x7684; Elasticsearch &#x96C6;&#x7FA4;&#x4E0A;&#x6D4B;&#x8BD5;&#x793A;&#x4F8B;&#x4EE3;&#x7801;&#xFF0C;&#x4ECE;&#x800C;&#x4F7F;&#x672C;&#x4E66;&#x66F4;&#x5177;&#x6709;&#x4EA4;&#x4E92;&#x6027;&#x3002;</p>
<p>&#x5B89;&#x88C5;&#x4E0E;&#x8FD0;&#x884C; Sense&#xFF1A;</p>
<ol>
<li><p>&#x5728; Kibana &#x76EE;&#x5F55;&#x4E0B;&#x8FD0;&#x884C;&#x4E0B;&#x9762;&#x7684;&#x547D;&#x4EE4;&#xFF0C;&#x4E0B;&#x8F7D;&#x5E76;&#x5B89;&#x88C5; Sense app&#xFF1A;</p>
<pre><code class="lang-sh">./bin/kibana plugin --install elastic/sense     &lt;1&gt;
</code></pre>
<blockquote>
<p>  <img src="assets/1.png" alt="img"> Windows&#x4E0A;&#x9762;&#x6267;&#x884C;: <code>bin\kibana.bat plugin --install elastic/sense</code> &#x3002;NOTE&#xFF1A;&#x4F60;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x4ECE;&#x8FD9;&#x91CC; <a href="https://download.elastic.co/elastic/sense/sense-latest.tar.gz" target="_blank">https://download.elastic.co/elastic/sense/sense-latest.tar.gz</a>&#x4E0B;&#x8F7D; Sense &#x79BB;&#x7EBF;&#x5B89;&#x88C5;&#x53EF;&#x4EE5;&#x67E5;&#x770B;&#x8FD9;&#x91CC; <a href="https://www.elastic.co/guide/en/sense/current/installing.html#manual_download" target="_blank">install it on an offline machine</a> &#x3002;  </p>
</blockquote>
</li>
<li><p>&#x542F;&#x52A8; Kibana.</p>
<pre><code class="lang-sh">./bin/kibana     &lt;1&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> Windows &#x4E0A;&#x542F;&#x52A8; kibana: <code>bin\kibana.bat</code> &#x3002;   </p>
</blockquote>
</li>
<li><p>&#x5728;&#x4F60;&#x7684;&#x6D4F;&#x89C8;&#x5668;&#x4E2D;&#x6253;&#x5F00; Sense: <code>http://localhost:5601/app/sense</code> &#x3002;</p>
</li>
</ol>
<h3 id="&#x548C;Elasticsearch&#x4EA4;&#x4E92;"><a name="&#x548C;Elasticsearch&#x4EA4;&#x4E92;" class="anchor-navigation-ex-anchor" href="#&#x548C;Elasticsearch&#x4EA4;&#x4E92;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x548C;Elasticsearch&#x4EA4;&#x4E92;  </h3>
<p>&#x548C; Elasticsearch &#x7684;&#x4EA4;&#x4E92;&#x65B9;&#x5F0F;&#x53D6;&#x51B3;&#x4E8E; &#x4F60;&#x662F;&#x5426;&#x4F7F;&#x7528; Java</p>
<p><strong>Java API</strong></p>
<p>&#x5982;&#x679C;&#x4F60;&#x6B63;&#x5728;&#x4F7F;&#x7528; Java&#xFF0C;&#x5728;&#x4EE3;&#x7801;&#x4E2D;&#x4F60;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; Elasticsearch &#x5185;&#x7F6E;&#x7684;&#x4E24;&#x4E2A;&#x5BA2;&#x6237;&#x7AEF;&#xFF1A;</p>
<ul>
<li><p>&#x8282;&#x70B9;&#x5BA2;&#x6237;&#x7AEF;&#xFF08;Node client&#xFF09;</p>
<p>&#x8282;&#x70B9;&#x5BA2;&#x6237;&#x7AEF;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x975E;&#x6570;&#x636E;&#x8282;&#x70B9;&#x52A0;&#x5165;&#x5230;&#x672C;&#x5730;&#x96C6;&#x7FA4;&#x4E2D;&#x3002;&#x6362;&#x53E5;&#x8BDD;&#x8BF4;&#xFF0C;&#x5B83;&#x672C;&#x8EAB;&#x4E0D;&#x4FDD;&#x5B58;&#x4EFB;&#x4F55;&#x6570;&#x636E;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x77E5;&#x9053;&#x6570;&#x636E;&#x5728;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x54EA;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;&#xFF0C;&#x5E76;&#x4E14;&#x53EF;&#x4EE5;&#x628A;&#x8BF7;&#x6C42;&#x8F6C;&#x53D1;&#x5230;&#x6B63;&#x786E;&#x7684;&#x8282;&#x70B9;&#x3002;</p>
</li>
<li><p>&#x4F20;&#x8F93;&#x5BA2;&#x6237;&#x7AEF;&#xFF08;Transport client&#xFF09;</p>
<p>&#x8F7B;&#x91CF;&#x7EA7;&#x7684;&#x4F20;&#x8F93;&#x5BA2;&#x6237;&#x7AEF;&#x53EF;&#x4EE5;&#x5C06;&#x8BF7;&#x6C42;&#x53D1;&#x9001;&#x5230;&#x8FDC;&#x7A0B;&#x96C6;&#x7FA4;&#x3002;&#x5B83;&#x672C;&#x8EAB;&#x4E0D;&#x52A0;&#x5165;&#x96C6;&#x7FA4;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x53EF;&#x4EE5;&#x5C06;&#x8BF7;&#x6C42;&#x8F6C;&#x53D1;&#x5230;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x3002;</p>
</li>
</ul>
<p>&#x4E24;&#x4E2A; Java &#x5BA2;&#x6237;&#x7AEF;&#x90FD;&#x662F;&#x901A;&#x8FC7; <em>9300</em> &#x7AEF;&#x53E3;&#x5E76;&#x4F7F;&#x7528; Elasticsearch &#x7684;&#x539F;&#x751F; <em>&#x4F20;&#x8F93;</em> &#x534F;&#x8BAE;&#x548C;&#x96C6;&#x7FA4;&#x4EA4;&#x4E92;&#x3002;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x8282;&#x70B9;&#x901A;&#x8FC7;&#x7AEF;&#x53E3; 9300 &#x5F7C;&#x6B64;&#x901A;&#x4FE1;&#x3002;&#x5982;&#x679C;&#x8FD9;&#x4E2A;&#x7AEF;&#x53E3;&#x6CA1;&#x6709;&#x6253;&#x5F00;&#xFF0C;&#x8282;&#x70B9;&#x5C06;&#x65E0;&#x6CD5;&#x5F62;&#x6210;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;"> Java &#x5BA2;&#x6237;&#x7AEF;&#x4F5C;&#x4E3A;&#x8282;&#x70B9;&#x5FC5;&#x987B;&#x548C; Elasticsearch &#x6709;&#x76F8;&#x540C;&#x7684; <em>&#x4E3B;&#x8981;</em> &#x7248;&#x672C;&#xFF1B;&#x5426;&#x5219;&#xFF0C;&#x5B83;&#x4EEC;&#x4E4B;&#x95F4;&#x5C06;&#x65E0;&#x6CD5;&#x4E92;&#x76F8;&#x7406;&#x89E3;&#x3002;</p>
</blockquote>
<p>&#x66F4;&#x591A;&#x7684; Java &#x5BA2;&#x6237;&#x7AEF;&#x4FE1;&#x606F;&#x53EF;&#x4EE5;&#x5728; <a href="https://www.elastic.co/guide/en/elasticsearch/client/index.html" target="_blank">Elasticsearch Clients</a> &#x4E2D;&#x627E;&#x5230;&#x3002;</p>
<p><strong>RESTful API with JSON over HTTP</strong></p>
<p>&#x6240;&#x6709;&#x5176;&#x4ED6;&#x8BED;&#x8A00;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; RESTful API &#x901A;&#x8FC7;&#x7AEF;&#x53E3; <em>9200</em> &#x548C; Elasticsearch &#x8FDB;&#x884C;&#x901A;&#x4FE1;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x7528;&#x4F60;&#x6700;&#x559C;&#x7231;&#x7684; web &#x5BA2;&#x6237;&#x7AEF;&#x8BBF;&#x95EE; Elasticsearch &#x3002;&#x4E8B;&#x5B9E;&#x4E0A;&#xFF0C;&#x6B63;&#x5982;&#x4F60;&#x6240;&#x770B;&#x5230;&#x7684;&#xFF0C;&#x4F60;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>curl</code> &#x547D;&#x4EE4;&#x6765;&#x548C; Elasticsearch &#x4EA4;&#x4E92;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;"> Elasticsearch &#x4E3A;&#x4EE5;&#x4E0B;&#x8BED;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x5B98;&#x65B9;&#x5BA2;&#x6237;&#x7AEF; --Groovy&#x3001;JavaScript&#x3001;.NET&#x3001; PHP&#x3001; Perl&#x3001; Python &#x548C; Ruby--&#x8FD8;&#x6709;&#x5F88;&#x591A;&#x793E;&#x533A;&#x63D0;&#x4F9B;&#x7684;&#x5BA2;&#x6237;&#x7AEF;&#x548C;&#x63D2;&#x4EF6;&#xFF0C;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x90FD;&#x53EF;&#x4EE5;&#x5728; <a href="https://www.elastic.co/guide/en/elasticsearch/client/index.html" target="_blank">Elasticsearch Clients</a> &#x4E2D;&#x627E;&#x5230;&#x3002;</p>
</blockquote>
<p>&#x4E00;&#x4E2A; Elasticsearch &#x8BF7;&#x6C42;&#x548C;&#x4EFB;&#x4F55; HTTP &#x8BF7;&#x6C42;&#x4E00;&#x6837;&#x7531;&#x82E5;&#x5E72;&#x76F8;&#x540C;&#x7684;&#x90E8;&#x4EF6;&#x7EC4;&#x6210;&#xFF1A;</p>
<pre><code class="lang-js">curl -X&lt;VERB&gt; <span class="hljs-string">&apos;&lt;PROTOCOL&gt;://&lt;HOST&gt;:&lt;PORT&gt;/&lt;PATH&gt;?&lt;QUERY_STRING&gt;&apos;</span> -d <span class="hljs-string">&apos;&lt;BODY&gt;&apos;</span>
</code></pre>
<p>&#x88AB; <code>&lt; &gt;</code> &#x6807;&#x8BB0;&#x7684;&#x90E8;&#x4EF6;&#xFF1A;</p>
<table>
<thead>
<tr>
<th><code>VERB</code></th>
<th>&#x9002;&#x5F53;&#x7684; HTTP <em>&#x65B9;&#x6CD5;</em> &#x6216; <em>&#x8C13;&#x8BCD;</em> : <code>GET</code>&#x3001; <code>POST</code>&#x3001; <code>PUT</code>&#x3001; <code>HEAD</code> &#x6216;&#x8005; <code>DELETE</code>&#x3002;</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>PROTOCOL</code></td>
<td><code>http</code> &#x6216;&#x8005; <code>https</code>&#xFF08;&#x5982;&#x679C;&#x4F60;&#x5728; Elasticsearch &#x524D;&#x9762;&#x6709;&#x4E00;&#x4E2A; <code>https</code> &#x4EE3;&#x7406;&#xFF09;</td>
</tr>
<tr>
<td><code>HOST</code></td>
<td>Elasticsearch &#x96C6;&#x7FA4;&#x4E2D;&#x4EFB;&#x610F;&#x8282;&#x70B9;&#x7684;&#x4E3B;&#x673A;&#x540D;&#xFF0C;&#x6216;&#x8005;&#x7528; <code>localhost</code> &#x4EE3;&#x8868;&#x672C;&#x5730;&#x673A;&#x5668;&#x4E0A;&#x7684;&#x8282;&#x70B9;&#x3002;</td>
</tr>
<tr>
<td><code>PORT</code></td>
<td>&#x8FD0;&#x884C; Elasticsearch HTTP &#x670D;&#x52A1;&#x7684;&#x7AEF;&#x53E3;&#x53F7;&#xFF0C;&#x9ED8;&#x8BA4;&#x662F; <code>9200</code> &#x3002;</td>
</tr>
<tr>
<td><code>PATH</code></td>
<td>API &#x7684;&#x7EC8;&#x7AEF;&#x8DEF;&#x5F84;&#xFF08;&#x4F8B;&#x5982; <code>_count</code> &#x5C06;&#x8FD4;&#x56DE;&#x96C6;&#x7FA4;&#x4E2D;&#x6587;&#x6863;&#x6570;&#x91CF;&#xFF09;&#x3002;Path &#x53EF;&#x80FD;&#x5305;&#x542B;&#x591A;&#x4E2A;&#x7EC4;&#x4EF6;&#xFF0C;&#x4F8B;&#x5982;&#xFF1A;<code>_cluster/stats</code> &#x548C; <code>_nodes/stats/jvm</code> &#x3002;</td>
</tr>
<tr>
<td><code>QUERY_STRING</code></td>
<td>&#x4EFB;&#x610F;&#x53EF;&#x9009;&#x7684;&#x67E5;&#x8BE2;&#x5B57;&#x7B26;&#x4E32;&#x53C2;&#x6570; (&#x4F8B;&#x5982; <code>?pretty</code> &#x5C06;&#x683C;&#x5F0F;&#x5316;&#x5730;&#x8F93;&#x51FA; JSON &#x8FD4;&#x56DE;&#x503C;&#xFF0C;&#x4F7F;&#x5176;&#x66F4;&#x5BB9;&#x6613;&#x9605;&#x8BFB;)</td>
</tr>
<tr>
<td><code>BODY</code></td>
<td>&#x4E00;&#x4E2A; JSON &#x683C;&#x5F0F;&#x7684;&#x8BF7;&#x6C42;&#x4F53; (&#x5982;&#x679C;&#x8BF7;&#x6C42;&#x9700;&#x8981;&#x7684;&#x8BDD;)</td>
</tr>
</tbody>
</table>
<p>&#x4F8B;&#x5982;&#xFF0C;&#x8BA1;&#x7B97;&#x96C6;&#x7FA4;&#x4E2D;&#x6587;&#x6863;&#x7684;&#x6570;&#x91CF;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7528;&#x8FD9;&#x4E2A;:</p>
<pre><code class="lang-js">curl -XGET &apos;http://localhost:9200/_count?pretty&apos; -d &apos;
{
    &quot;query&quot;: {
        &quot;match_all&quot;: {}
    }
}
&apos;
</code></pre>
<p>Elasticsearch &#x8FD4;&#x56DE;&#x4E00;&#x4E2A; HTTP &#x72B6;&#x6001;&#x7801;&#xFF08;&#x4F8B;&#x5982;&#xFF1A;<code>200 OK</code>&#xFF09;&#x548C;&#xFF08;&#x9664;<code>HEAD</code>&#x8BF7;&#x6C42;&#xFF09;&#x4E00;&#x4E2A; JSON &#x683C;&#x5F0F;&#x7684;&#x8FD4;&#x56DE;&#x503C;&#x3002;&#x524D;&#x9762;&#x7684; <code>curl</code> &#x8BF7;&#x6C42;&#x5C06;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x50CF;&#x4E0B;&#x9762;&#x4E00;&#x6837;&#x7684; JSON &#x4F53;&#xFF1A;</p>
<pre><code class="lang-js">{
    <span class="hljs-string">&quot;count&quot;</span> : <span class="hljs-number">0</span>,
    <span class="hljs-string">&quot;_shards&quot;</span> : {
        <span class="hljs-string">&quot;total&quot;</span> : <span class="hljs-number">5</span>,
        <span class="hljs-string">&quot;successful&quot;</span> : <span class="hljs-number">5</span>,
        <span class="hljs-string">&quot;failed&quot;</span> : <span class="hljs-number">0</span>
    }
}
</code></pre>
<p>&#x5728;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x4E2D;&#x6CA1;&#x6709;&#x770B;&#x5230; HTTP &#x5934;&#x4FE1;&#x606F;&#x662F;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x8981;&#x6C42;<code>curl</code>&#x663E;&#x793A;&#x5B83;&#x4EEC;&#x3002;&#x60F3;&#x8981;&#x770B;&#x5230;&#x5934;&#x4FE1;&#x606F;&#xFF0C;&#x9700;&#x8981;&#x7ED3;&#x5408; <code>-i</code> &#x53C2;&#x6570;&#x6765;&#x4F7F;&#x7528; <code>curl</code> &#x547D;&#x4EE4;&#xFF1A;</p>
<pre><code class="lang-js">curl -i -XGET <span class="hljs-string">&apos;localhost:9200/&apos;</span>
</code></pre>
<p>&#x5728;&#x4E66;&#x4E2D;&#x5269;&#x4F59;&#x7684;&#x90E8;&#x5206;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x7528;&#x7F29;&#x5199;&#x683C;&#x5F0F;&#x6765;&#x5C55;&#x793A;&#x8FD9;&#x4E9B; <code>curl</code> &#x793A;&#x4F8B;&#xFF0C;&#x6240;&#x8C13;&#x7684;&#x7F29;&#x5199;&#x683C;&#x5F0F;&#x5C31;&#x662F;&#x7701;&#x7565;&#x8BF7;&#x6C42;&#x4E2D;&#x6240;&#x6709;&#x76F8;&#x540C;&#x7684;&#x90E8;&#x5206;&#xFF0C;&#x4F8B;&#x5982;&#x4E3B;&#x673A;&#x540D;&#x3001;&#x7AEF;&#x53E3;&#x53F7;&#x4EE5;&#x53CA; <code>curl</code> &#x547D;&#x4EE4;&#x672C;&#x8EAB;&#x3002;&#x800C;&#x4E0D;&#x662F;&#x50CF;&#x4E0B;&#x9762;&#x663E;&#x793A;&#x7684;&#x90A3;&#x6837;&#x7528;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x8BF7;&#x6C42;&#xFF1A;</p>
<pre><code class="lang-js">curl -XGET &apos;localhost:9200/_count?pretty&apos; -d &apos;
{
    &quot;query&quot;: {
        &quot;match_all&quot;: {}
    }
}&apos;
</code></pre>
<p>&#x6211;&#x4EEC;&#x5C06;&#x7528;&#x7F29;&#x5199;&#x683C;&#x5F0F;&#x663E;&#x793A;&#xFF1A;</p>
<pre><code class="lang-js">GET /_count
{
    <span class="hljs-string">&quot;query&quot;</span>: {
        <span class="hljs-string">&quot;match_all&quot;</span>: {}
    }
}
</code></pre>
<p>&#x4E8B;&#x5B9E;&#x4E0A;&#xFF0C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/running-elasticsearch.html#sense" target="_blank">Sense &#x63A7;&#x5236;&#x53F0;</a> &#x4E5F;&#x4F7F;&#x7528;&#x8FD9;&#x6837;&#x76F8;&#x540C;&#x7684;&#x683C;&#x5F0F;&#x3002;&#x5982;&#x679C;&#x4F60;&#x6B63;&#x5728;&#x9605;&#x8BFB;&#x8FD9;&#x672C;&#x4E66;&#x7684;&#x5728;&#x7EBF;&#x7248;&#x672C;,&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x70B9;&#x51FB; Sense &#x94FE;&#x63A5;&#x89C6;&#x56FE;&#x5728; Sense &#x4E0A;&#x6253;&#x5F00;&#x548C;&#x8FD0;&#x884C;&#x793A;&#x4F8B;&#x4EE3;&#x7801;&#x3002;</p>
<h3 id="&#x9762;&#x5411;&#x6587;&#x6863;"><a name="&#x9762;&#x5411;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x9762;&#x5411;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x9762;&#x5411;&#x6587;&#x6863;</h3>
<p>&#x5728;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x5BF9;&#x8C61;&#x5F88;&#x5C11;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x952E;&#x548C;&#x503C;&#x7684;&#x5217;&#x8868;&#x3002;&#x901A;&#x5E38;&#xFF0C;&#x5B83;&#x4EEC;&#x62E5;&#x6709;&#x66F4;&#x590D;&#x6742;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#xFF0C;&#x53EF;&#x80FD;&#x5305;&#x62EC;&#x65E5;&#x671F;&#x3001;&#x5730;&#x7406;&#x4FE1;&#x606F;&#x3001;&#x5176;&#x4ED6;&#x5BF9;&#x8C61;&#x6216;&#x8005;&#x6570;&#x7EC4;&#x7B49;&#x3002;</p>
<p>&#x4E5F;&#x8BB8;&#x6709;&#x4E00;&#x5929;&#x4F60;&#x60F3;&#x628A;&#x8FD9;&#x4E9B;&#x5BF9;&#x8C61;&#x5B58;&#x50A8;&#x5728;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x3002;&#x4F7F;&#x7528;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x7684;&#x884C;&#x548C;&#x5217;&#x5B58;&#x50A8;&#xFF0C;&#x8FD9;&#x76F8;&#x5F53;&#x4E8E;&#x662F;&#x628A;&#x4E00;&#x4E2A;&#x8868;&#x73B0;&#x529B;&#x4E30;&#x5BCC;&#x7684;&#x5BF9;&#x8C61;&#x6324;&#x538B;&#x5230;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x5927;&#x7684;&#x7535;&#x5B50;&#x8868;&#x683C;&#x4E2D;&#xFF1A;&#x4F60;&#x5FC5;&#x987B;&#x5C06;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x6241;&#x5E73;&#x5316;&#x6765;&#x9002;&#x5E94;&#x8868;&#x7ED3;&#x6784;--&#x901A;&#x5E38;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&gt;&#x5BF9;&#x5E94;&#x4E00;&#x5217;--&#x800C;&#x4E14;&#x53C8;&#x4E0D;&#x5F97;&#x4E0D;&#x5728;&#x6BCF;&#x6B21;&#x67E5;&#x8BE2;&#x65F6;&#x91CD;&#x65B0;&#x6784;&#x9020;&#x5BF9;&#x8C61;&#x3002;</p>
<p>Elasticsearch &#x662F; <em>&#x9762;&#x5411;&#x6587;&#x6863;</em> &#x7684;&#xFF0C;&#x610F;&#x5473;&#x7740;&#x5B83;&#x5B58;&#x50A8;&#x6574;&#x4E2A;&#x5BF9;&#x8C61;&#x6216; <em>&#x6587;&#x6863;<em>&#x3002;Elasticsearch &#x4E0D;&#x4EC5;&#x5B58;&#x50A8;&#x6587;&#x6863;&#xFF0C;&#x800C;&#x4E14; </em>&#x7D22;&#x5F15;</em>&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x5185;&#x5BB9;&#x4F7F;&#x4E4B;&#x53EF;&#x4EE5;&#x88AB;&#x68C0;&#x7D22;&#x3002;&#x5728; Elasticsearch &#x4E2D;&#xFF0C;&#x4F60; &#x5BF9;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#x3001;&#x68C0;&#x7D22;&#x3001;&#x6392;&#x5E8F;&#x548C;&#x8FC7;&#x6EE4;--&#x800C;&#x4E0D;&#x662F;&#x5BF9;&#x884C;&#x5217;&#x6570;&#x636E;&#x3002;&#x8FD9;&#x662F;&#x4E00;&#x79CD;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x7684;&#x601D;&#x8003;&#x6570;&#x636E;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x4E5F;&#x662F; Elasticsearch &#x80FD;&#x652F;&#x6301;&#x590D;&#x6742;&#x5168;&#x6587;&#x68C0;&#x7D22;&#x7684;&#x539F;&#x56E0;&#x3002;</p>
<p><strong>JSON</strong></p>
<p>Elasticsearch &#x4F7F;&#x7528; JavaScript Object Notation &#x6216;&#x8005; <a href="http://en.wikipedia.org/wiki/Json" target="_blank"><em>JSON</em></a> &#x4F5C;&#x4E3A;&#x6587;&#x6863;&#x7684;&#x5E8F;&#x5217;&#x5316;&#x683C;&#x5F0F;&#x3002;JSON &#x5E8F;&#x5217;&#x5316;&#x88AB;&#x5927;&#x591A;&#x6570;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x6240;&#x652F;&#x6301;&#xFF0C;&#x5E76;&#x4E14;&#x5DF2;&#x7ECF;&#x6210;&#x4E3A; NoSQL &#x9886;&#x57DF;&#x7684;&#x6807;&#x51C6;&#x683C;&#x5F0F;&#x3002; &#x5B83;&#x7B80;&#x5355;&#x3001;&#x7B80;&#x6D01;&#x3001;&#x6613;&#x4E8E;&#x9605;&#x8BFB;&#x3002;</p>
<p>&#x8003;&#x8651;&#x4E00;&#x4E0B;&#x8FD9;&#x4E2A; JSON &#x6587;&#x6863;&#xFF0C;&#x5B83;&#x4EE3;&#x8868;&#x4E86;&#x4E00;&#x4E2A; user &#x5BF9;&#x8C61;&#xFF1A;</p>
<pre><code class="lang-js">{
    <span class="hljs-string">&quot;email&quot;</span>:      <span class="hljs-string">&quot;john@smith.com&quot;</span>,
    <span class="hljs-string">&quot;first_name&quot;</span>: <span class="hljs-string">&quot;John&quot;</span>,
    <span class="hljs-string">&quot;last_name&quot;</span>:  <span class="hljs-string">&quot;Smith&quot;</span>,
    <span class="hljs-string">&quot;info&quot;</span>: {
        <span class="hljs-string">&quot;bio&quot;</span>:         <span class="hljs-string">&quot;Eco-warrior and defender of the weak&quot;</span>,
        <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">25</span>,
        <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;dolphins&quot;</span>, <span class="hljs-string">&quot;whales&quot;</span> ]
    },
    <span class="hljs-string">&quot;join_date&quot;</span>: <span class="hljs-string">&quot;2014/05/01&quot;</span>
}
</code></pre>
<p>&#x867D;&#x7136;&#x539F;&#x59CB;&#x7684; <code>user</code> &#x5BF9;&#x8C61;&#x5F88;&#x590D;&#x6742;&#xFF0C;&#x4F46;&#x8FD9;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x7ED3;&#x6784;&#x548C;&#x542B;&#x4E49;&#x5728; JSON &#x7248;&#x672C;&#x4E2D;&#x90FD;&#x5F97;&#x5230;&#x4E86;&#x4F53;&#x73B0;&#x548C;&#x4FDD;&#x7559;&#x3002;&#x5728; Elasticsearch &#x4E2D;&#x5C06;&#x5BF9;&#x8C61;&#x8F6C;&#x5316;&#x4E3A; JSON &#x5E76;&#x505A;&#x7D22;&#x5F15;&#x8981;&#x6BD4;&#x5728;&#x4E00;&#x4E2A;&#x6241;&#x5E73;&#x7684;&#x8868;&#x7ED3;&#x6784;&#x4E2D;&#x505A;&#x76F8;&#x540C;&#x7684;&#x4E8B;&#x60C5;&#x7B80;&#x5355;&#x7684;&#x591A;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x51E0;&#x4E4E;&#x6240;&#x6709;&#x7684;&#x8BED;&#x8A00;&#x90FD;&#x6709;&#x76F8;&#x5E94;&#x7684;&#x6A21;&#x5757;&#x53EF;&#x4EE5;&#x5C06;&#x4EFB;&#x610F;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x6216;&#x5BF9;&#x8C61; &#x8F6C;&#x5316;&#x6210; JSON &#x683C;&#x5F0F;&#xFF0C;&#x53EA;&#x662F;&#x7EC6;&#x8282;&#x5404;&#x4E0D;&#x76F8;&#x540C;&#x3002;&#x5177;&#x4F53;&#x8BF7;&#x67E5;&#x770B; <em>serialization</em> &#x6216;&#x8005; <em>marshalling</em> &#x8FD9;&#x4E24;&#x4E2A; &#x5904;&#x7406; JSON &#x7684;&#x6A21;&#x5757;&#x3002;&#x5B98;&#x65B9; <a href="https://www.elastic.co/guide/en/elasticsearch/client/index.html" target="_blank">Elasticsearch &#x5BA2;&#x6237;&#x7AEF;</a> &#x81EA;&#x52A8;&#x4E3A;&#x60A8;&#x63D0;&#x4F9B; JSON &#x8F6C;&#x5316;&#x3002;</p>
</blockquote>
<h3 id="&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;"><a name="&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;" class="anchor-navigation-ex-anchor" href="#&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x9002;&#x5E94;&#x65B0;&#x73AF;&#x5883;</h3>
<p>&#x4E3A;&#x4E86;&#x5BF9; Elasticsearch &#x80FD;&#x5B9E;&#x73B0;&#x4EC0;&#x4E48;&#x53CA;&#x5176;&#x4E0A;&#x624B;&#x5BB9;&#x6613;&#x7A0B;&#x5EA6;&#x6709;&#x4E00;&#x4E2A;&#x57FA;&#x672C;&#x5370;&#x8C61;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x4ECE;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x6559;&#x7A0B;&#x5F00;&#x59CB;&#x5E76;&#x4ECB;&#x7ECD;&#x7D22;&#x5F15;&#x3001;&#x641C;&#x7D22;&#x53CA;&#x805A;&#x5408;&#x7B49;&#x57FA;&#x7840;&#x6982;&#x5FF5;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x5C06;&#x4E00;&#x5E76;&#x4ECB;&#x7ECD;&#x4E00;&#x4E9B;&#x65B0;&#x7684;&#x6280;&#x672F;&#x672F;&#x8BED;&#x548C;&#x57FA;&#x7840;&#x6982;&#x5FF5;&#xFF0C;&#x56E0;&#x6B64;&#x5373;&#x4F7F;&#x65E0;&#x6CD5;&#x7ACB;&#x5373;&#x5168;&#x76D8;&#x7406;&#x89E3;&#x4E5F;&#x65E0;&#x59A8;&#x3002;&#x5728;&#x672C;&#x4E66;&#x540E;&#x7EED;&#x5185;&#x5BB9;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x6DF1;&#x5165;&#x4ECB;&#x7ECD;&#x8FD9;&#x91CC;&#x63D0;&#x5230;&#x7684;&#x6240;&#x6709;&#x6982;&#x5FF5;&#x3002;</p>
<p>&#x63A5;&#x4E0B;&#x6765;&#x5C3D;&#x60C5;&#x4EAB;&#x53D7; Elasticsearch &#x63A2;&#x7D22;&#x4E4B;&#x65C5;&#x3002;</p>
<p><strong>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x96C7;&#x5458;&#x76EE;&#x5F55;</strong></p>
<p>&#x6211;&#x4EEC;&#x53D7;&#x96C7;&#x4E8E; <em>Megacorp</em> &#x516C;&#x53F8;&#xFF0C;&#x4F5C;&#x4E3A; HR &#x90E8;&#x95E8;&#x65B0;&#x7684; <em>&#x201C;&#x70ED;&#x7231;&#x65E0;&#x4EBA;&#x673A;&#x201D;</em> &#xFF08;<em>&quot;We love our drones!&quot;</em>&#xFF09;&#x6FC0;&#x52B1;&#x9879;&#x76EE;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x4EFB;&#x52A1;&#x662F;&#x4E3A;&#x6B64;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x96C7;&#x5458;&#x76EE;&#x5F55;&#x3002;&#x8BE5;&#x76EE;&#x5F55;&#x5E94;&#x5F53;&#x80FD;&#x57F9;&#x517B;&#x96C7;&#x5458;&#x8BA4;&#x540C;&#x611F;&#x53CA;&#x652F;&#x6301;&#x5B9E;&#x65F6;&#x3001;&#x9AD8;&#x6548;&#x3001;&#x52A8;&#x6001;&#x534F;&#x4F5C;&#xFF0C;&#x56E0;&#x6B64;&#x6709;&#x4E00;&#x4E9B;&#x4E1A;&#x52A1;&#x9700;&#x6C42;&#xFF1A;</p>
<ul>
<li>&#x652F;&#x6301;&#x5305;&#x542B;&#x591A;&#x503C;&#x6807;&#x7B7E;&#x3001;&#x6570;&#x503C;&#x3001;&#x4EE5;&#x53CA;&#x5168;&#x6587;&#x672C;&#x7684;&#x6570;&#x636E;</li>
<li>&#x68C0;&#x7D22;&#x4EFB;&#x4E00;&#x96C7;&#x5458;&#x7684;&#x5B8C;&#x6574;&#x4FE1;&#x606F;</li>
<li>&#x5141;&#x8BB8;&#x7ED3;&#x6784;&#x5316;&#x641C;&#x7D22;&#xFF0C;&#x6BD4;&#x5982;&#x67E5;&#x8BE2; 30 &#x5C81;&#x4EE5;&#x4E0A;&#x7684;&#x5458;&#x5DE5;</li>
<li>&#x5141;&#x8BB8;&#x7B80;&#x5355;&#x7684;&#x5168;&#x6587;&#x641C;&#x7D22;&#x4EE5;&#x53CA;&#x8F83;&#x590D;&#x6742;&#x7684;&#x77ED;&#x8BED;&#x641C;&#x7D22;</li>
<li>&#x652F;&#x6301;&#x5728;&#x5339;&#x914D;&#x6587;&#x6863;&#x5185;&#x5BB9;&#x4E2D;&#x9AD8;&#x4EAE;&#x663E;&#x793A;&#x641C;&#x7D22;&#x7247;&#x6BB5;</li>
<li>&#x652F;&#x6301;&#x57FA;&#x4E8E;&#x6570;&#x636E;&#x521B;&#x5EFA;&#x548C;&#x7BA1;&#x7406;&#x5206;&#x6790;&#x4EEA;&#x8868;&#x76D8;</li>
</ul>
<h3 id="&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;"><a name="&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7D22;&#x5F15;&#x96C7;&#x5458;&#x6587;&#x6863;</h3>
<p>&#x7B2C;&#x4E00;&#x4E2A;&#x4E1A;&#x52A1;&#x9700;&#x6C42;&#x5C31;&#x662F;&#x5B58;&#x50A8;&#x96C7;&#x5458;&#x6570;&#x636E;&#x3002; &#x8FD9;&#x5C06;&#x4F1A;&#x4EE5; <em>&#x96C7;&#x5458;&#x6587;&#x6863;</em> &#x7684;&#x5F62;&#x5F0F;&#x5B58;&#x50A8;&#xFF1A;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4EE3;&#x8868;&#x4E00;&#x4E2A;&#x96C7;&#x5458;&#x3002;&#x5B58;&#x50A8;&#x6570;&#x636E;&#x5230; Elasticsearch &#x7684;&#x884C;&#x4E3A;&#x53EB;&#x505A; <em>&#x7D22;&#x5F15;</em> &#xFF0C;&#x4F46;&#x5728;&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E4B;&#x524D;&#xFF0C;&#x9700;&#x8981;&#x786E;&#x5B9A;&#x5C06;&#x6587;&#x6863;&#x5B58;&#x50A8;&#x5728;&#x54EA;&#x91CC;&#x3002;</p>
<p>&#x4E00;&#x4E2A; Elasticsearch &#x96C6;&#x7FA4;&#x53EF;&#x4EE5; &#x5305;&#x542B;&#x591A;&#x4E2A; <em>&#x7D22;&#x5F15;</em> &#xFF0C;&#x76F8;&#x5E94;&#x7684;&#x6BCF;&#x4E2A;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x591A;&#x4E2A; <em>&#x7C7B;&#x578B;</em> &#x3002; &#x8FD9;&#x4E9B;&#x4E0D;&#x540C;&#x7684;&#x7C7B;&#x578B;&#x5B58;&#x50A8;&#x7740;&#x591A;&#x4E2A; <em>&#x6587;&#x6863;</em> &#xFF0C;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x53C8;&#x6709; &#x591A;&#x4E2A; <em>&#x5C5E;&#x6027;</em> &#x3002;</p>
<hr>
<blockquote>
<p> <strong>Index Versus Index Versus Index</strong></p>
<p> &#x4F60;&#x4E5F;&#x8BB8;&#x5DF2;&#x7ECF;&#x6CE8;&#x610F;&#x5230; <em>&#x7D22;&#x5F15;</em> &#x8FD9;&#x4E2A;&#x8BCD;&#x5728; Elasticsearch &#x8BED;&#x5883;&#x4E2D;&#x5305;&#x542B;&#x591A;&#x91CD;&#x610F;&#x601D;&#xFF0C; &#x6240;&#x4EE5;&#x6709;&#x5FC5;&#x8981;&#x505A;&#x4E00;&#x70B9;&#x513F;&#x8BF4;&#x660E;&#xFF1A;</p>
<p> &#x7D22;&#x5F15;&#xFF08;&#x540D;&#x8BCD;&#xFF09;&#xFF1A;</p>
<p> &#x5982;&#x524D;&#x6240;&#x8FF0;&#xFF0C;&#x4E00;&#x4E2A; <em>&#x7D22;&#x5F15;</em> &#x7C7B;&#x4F3C;&#x4E8E;&#x4F20;&#x7EDF;&#x5173;&#x7CFB;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x7684;&#x4E00;&#x4E2A; <em>&#x6570;&#x636E;&#x5E93;</em> &#xFF0C;&#x662F;&#x4E00;&#x4E2A;&#x5B58;&#x50A8;&#x5173;&#x7CFB;&#x578B;&#x6587;&#x6863;&#x7684;&#x5730;&#x65B9;&#x3002; <em>&#x7D22;&#x5F15;</em> (<em>index</em>) &#x7684;&#x590D;&#x6570;&#x8BCD;&#x4E3A; <em>indices</em> &#x6216; <em>indexes</em> &#x3002;</p>
<p> &#x7D22;&#x5F15;&#xFF08;&#x52A8;&#x8BCD;&#xFF09;&#xFF1A;</p>
<p> <em>&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6587;&#x6863;</em> &#x5C31;&#x662F;&#x5B58;&#x50A8;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x5230;&#x4E00;&#x4E2A; <em>&#x7D22;&#x5F15;</em> &#xFF08;&#x540D;&#x8BCD;&#xFF09;&#x4E2D;&#x4EE5;&#x4FBF;&#x5B83;&#x53EF;&#x4EE5;&#x88AB;&#x68C0;&#x7D22;&#x548C;&#x67E5;&#x8BE2;&#x5230;&#x3002;&#x8FD9;&#x975E;&#x5E38;&#x7C7B;&#x4F3C;&#x4E8E; SQL &#x8BED;&#x53E5;&#x4E2D;&#x7684; <code>INSERT</code> &#x5173;&#x952E;&#x8BCD;&#xFF0C;&#x9664;&#x4E86;&#x6587;&#x6863;&#x5DF2;&#x5B58;&#x5728;&#x65F6;&#x65B0;&#x6587;&#x6863;&#x4F1A;&#x66FF;&#x6362;&#x65E7;&#x6587;&#x6863;&#x60C5;&#x51B5;&#x4E4B;&#x5916;&#x3002;</p>
<p> &#x5012;&#x6392;&#x7D22;&#x5F15;&#xFF1A;</p>
<p> &#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x901A;&#x8FC7;&#x589E;&#x52A0;&#x4E00;&#x4E2A; <em>&#x7D22;&#x5F15;</em> &#x6BD4;&#x5982;&#x4E00;&#x4E2A; B&#x6811;&#xFF08;B-tree&#xFF09;&#x7D22;&#x5F15; &#x5230;&#x6307;&#x5B9A;&#x7684;&#x5217;&#x4E0A;&#xFF0C;&#x4EE5;&#x4FBF;&#x63D0;&#x5347;&#x6570;&#x636E;&#x68C0;&#x7D22;&#x901F;&#x5EA6;&#x3002;Elasticsearch &#x548C; Lucene &#x4F7F;&#x7528;&#x4E86;&#x4E00;&#x4E2A;&#x53EB;&#x505A; <em>&#x5012;&#x6392;&#x7D22;&#x5F15;</em> &#x7684;&#x7ED3;&#x6784;&#x6765;&#x8FBE;&#x5230;&#x76F8;&#x540C;&#x7684;&#x76EE;&#x7684;&#x3002;</p>
<p> + &#x9ED8;&#x8BA4;&#x7684;&#xFF0C;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x5C5E;&#x6027;&#x90FD;&#x662F; <em>&#x88AB;&#x7D22;&#x5F15;</em> &#x7684;&#xFF08;&#x6709;&#x4E00;&#x4E2A;&#x5012;&#x6392;&#x7D22;&#x5F15;&#xFF09;&#x548C;&#x53EF;&#x641C;&#x7D22;&#x7684;&#x3002;&#x4E00;&#x4E2A;&#x6CA1;&#x6709;&#x5012;&#x6392;&#x7D22;&#x5F15;&#x7684;&#x5C5E;&#x6027;&#x662F;&#x4E0D;&#x80FD;&#x88AB;&#x641C;&#x7D22;&#x5230;&#x7684;&#x3002;&#x6211;&#x4EEC;&#x5C06;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/inverted-index.html" target="_blank">&#x5012;&#x6392;&#x7D22;&#x5F15;</a> &#x8BA8;&#x8BBA;&#x5012;&#x6392;&#x7D22;&#x5F15;&#x7684;&#x66F4;&#x591A;&#x7EC6;&#x8282;&#x3002;</p>
</blockquote>
<hr>
<p>&#x5BF9;&#x4E8E;&#x96C7;&#x5458;&#x76EE;&#x5F55;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x505A;&#x5982;&#x4E0B;&#x64CD;&#x4F5C;&#xFF1A;</p>
<ul>
<li>&#x6BCF;&#x4E2A;&#x96C7;&#x5458;&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x5305;&#x542B;&#x8BE5;&#x96C7;&#x5458;&#x7684;&#x6240;&#x6709;&#x4FE1;&#x606F;&#x3002;</li>
<li>&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x5C06;&#x662F; <code>employee</code> <em>&#x7C7B;&#x578B;</em> &#x3002;</li>
<li>&#x8BE5;&#x7C7B;&#x578B;&#x4F4D;&#x4E8E; <em>&#x7D22;&#x5F15;</em> <code>megacorp</code> &#x5185;&#x3002;</li>
<li>&#x8BE5;&#x7D22;&#x5F15;&#x4FDD;&#x5B58;&#x5728;&#x6211;&#x4EEC;&#x7684; Elasticsearch &#x96C6;&#x7FA4;&#x4E2D;&#x3002;</li>
</ul>
<p>&#x5B9E;&#x8DF5;&#x4E2D;&#x8FD9;&#x975E;&#x5E38;&#x7B80;&#x5355;&#xFF08;&#x5C3D;&#x7BA1;&#x770B;&#x8D77;&#x6765;&#x6709;&#x5F88;&#x591A;&#x6B65;&#x9AA4;&#xFF09;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4E00;&#x6761;&#x547D;&#x4EE4;&#x5B8C;&#x6210;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x52A8;&#x4F5C;&#xFF1A;</p>
<pre><code class="lang-js">PUT /megacorp/employee/<span class="hljs-number">1</span>
{
    <span class="hljs-string">&quot;first_name&quot;</span> : <span class="hljs-string">&quot;John&quot;</span>,
    <span class="hljs-string">&quot;last_name&quot;</span> :  <span class="hljs-string">&quot;Smith&quot;</span>,
    <span class="hljs-string">&quot;age&quot;</span> :        <span class="hljs-number">25</span>,
    <span class="hljs-string">&quot;about&quot;</span> :      <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
    <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
}
</code></pre>
<p>&#x6CE8;&#x610F;&#xFF0C;&#x8DEF;&#x5F84; <code>/megacorp/employee/1</code> &#x5305;&#x542B;&#x4E86;&#x4E09;&#x90E8;&#x5206;&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p>
<ul>
<li><p><code>megacorp</code></p>
<p>&#x7D22;&#x5F15;&#x540D;&#x79F0;</p>
</li>
<li><p><code>employee</code></p>
<p>&#x7C7B;&#x578B;&#x540D;&#x79F0;</p>
</li>
<li><p><code>1</code></p>
<p>&#x7279;&#x5B9A;&#x96C7;&#x5458;&#x7684;ID</p>
</li>
</ul>
<p>&#x8BF7;&#x6C42;&#x4F53; &#x2014;&#x2014; JSON &#x6587;&#x6863; &#x2014;&#x2014; &#x5305;&#x542B;&#x4E86;&#x8FD9;&#x4F4D;&#x5458;&#x5DE5;&#x7684;&#x6240;&#x6709;&#x8BE6;&#x7EC6;&#x4FE1;&#x606F;&#xFF0C;&#x4ED6;&#x7684;&#x540D;&#x5B57;&#x53EB; John Smith &#xFF0C;&#x4ECA;&#x5E74; 25 &#x5C81;&#xFF0C;&#x559C;&#x6B22;&#x6500;&#x5CA9;&#x3002;</p>
<p>&#x5F88;&#x7B80;&#x5355;&#xFF01;&#x65E0;&#x9700;&#x8FDB;&#x884C;&#x6267;&#x884C;&#x7BA1;&#x7406;&#x4EFB;&#x52A1;&#xFF0C;&#x5982;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x6216;&#x6307;&#x5B9A;&#x6BCF;&#x4E2A;&#x5C5E;&#x6027;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x4E4B;&#x7C7B;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x53EA;&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002;Elasticsearch &#x9ED8;&#x8BA4;&#x5730;&#x5B8C;&#x6210;&#x5176;&#x4ED6;&#x4E00;&#x5207;&#xFF0C;&#x56E0;&#x6B64;&#x6240;&#x6709;&#x5FC5;&#x9700;&#x7684;&#x7BA1;&#x7406;&#x4EFB;&#x52A1;&#x90FD;&#x5728;&#x540E;&#x53F0;&#x4F7F;&#x7528;&#x9ED8;&#x8BA4;&#x8BBE;&#x7F6E;&#x5B8C;&#x6210;&#x3002;</p>
<p>&#x8FDB;&#x884C;&#x4E0B;&#x4E00;&#x6B65;&#x524D;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x589E;&#x52A0;&#x66F4;&#x591A;&#x7684;&#x5458;&#x5DE5;&#x4FE1;&#x606F;&#x5230;&#x76EE;&#x5F55;&#x4E2D;&#xFF1A;</p>
<pre><code class="lang-js">PUT /megacorp/employee/<span class="hljs-number">2</span>
{
    <span class="hljs-string">&quot;first_name&quot;</span> :  <span class="hljs-string">&quot;Jane&quot;</span>,
    <span class="hljs-string">&quot;last_name&quot;</span> :   <span class="hljs-string">&quot;Smith&quot;</span>,
    <span class="hljs-string">&quot;age&quot;</span> :         <span class="hljs-number">32</span>,
    <span class="hljs-string">&quot;about&quot;</span> :       <span class="hljs-string">&quot;I like to collect rock albums&quot;</span>,
    <span class="hljs-string">&quot;interests&quot;</span>:  [ <span class="hljs-string">&quot;music&quot;</span> ]
}

PUT /megacorp/employee/<span class="hljs-number">3</span>
{
    <span class="hljs-string">&quot;first_name&quot;</span> :  <span class="hljs-string">&quot;Douglas&quot;</span>,
    <span class="hljs-string">&quot;last_name&quot;</span> :   <span class="hljs-string">&quot;Fir&quot;</span>,
    <span class="hljs-string">&quot;age&quot;</span> :         <span class="hljs-number">35</span>,
    <span class="hljs-string">&quot;about&quot;</span>:        <span class="hljs-string">&quot;I like to build cabinets&quot;</span>,
    <span class="hljs-string">&quot;interests&quot;</span>:  [ <span class="hljs-string">&quot;forestry&quot;</span> ]
}
</code></pre>
<h3 id="&#x68C0;&#x7D22;&#x6587;&#x6863;"><a name="&#x68C0;&#x7D22;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x68C0;&#x7D22;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x68C0;&#x7D22;&#x6587;&#x6863;</h3>
<p>&#x76EE;&#x524D;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x5728; Elasticsearch &#x4E2D;&#x5B58;&#x50A8;&#x4E86;&#x4E00;&#x4E9B;&#x6570;&#x636E;&#xFF0C; &#x63A5;&#x4E0B;&#x6765;&#x5C31;&#x80FD;&#x4E13;&#x6CE8;&#x4E8E;&#x5B9E;&#x73B0;&#x5E94;&#x7528;&#x7684;&#x4E1A;&#x52A1;&#x9700;&#x6C42;&#x4E86;&#x3002;&#x7B2C;&#x4E00;&#x4E2A;&#x9700;&#x6C42;&#x662F;&#x53EF;&#x4EE5;&#x68C0;&#x7D22;&#x5230;&#x5355;&#x4E2A;&#x96C7;&#x5458;&#x7684;&#x6570;&#x636E;&#x3002;</p>
<p>&#x8FD9;&#x5728; Elasticsearch &#x4E2D;&#x5F88;&#x7B80;&#x5355;&#x3002;&#x7B80;&#x5355;&#x5730;&#x6267;&#x884C; &#x4E00;&#x4E2A; HTTP <code>GET</code> &#x8BF7;&#x6C42;&#x5E76;&#x6307;&#x5B9A;&#x6587;&#x6863;&#x7684;&#x5730;&#x5740;&#x2014;&#x2014;&#x7D22;&#x5F15;&#x5E93;&#x3001;&#x7C7B;&#x578B;&#x548C;ID&#x3002; &#x4F7F;&#x7528;&#x8FD9;&#x4E09;&#x4E2A;&#x4FE1;&#x606F;&#x53EF;&#x4EE5;&#x8FD4;&#x56DE;&#x539F;&#x59CB;&#x7684; JSON &#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/<span class="hljs-number">1</span>
</code></pre>
<p>&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x5305;&#x542B;&#x4E86;&#x6587;&#x6863;&#x7684;&#x4E00;&#x4E9B;&#x5143;&#x6570;&#x636E;&#xFF0C;&#x4EE5;&#x53CA; <code>_source</code> &#x5C5E;&#x6027;&#xFF0C;&#x5185;&#x5BB9;&#x662F; John Smith &#x96C7;&#x5458;&#x7684;&#x539F;&#x59CB; JSON &#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;megacorp&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;employee&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;1&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
  <span class="hljs-string">&quot;_source&quot;</span> :  {
      <span class="hljs-string">&quot;first_name&quot;</span> :  <span class="hljs-string">&quot;John&quot;</span>,
      <span class="hljs-string">&quot;last_name&quot;</span> :   <span class="hljs-string">&quot;Smith&quot;</span>,
      <span class="hljs-string">&quot;age&quot;</span> :         <span class="hljs-number">25</span>,
      <span class="hljs-string">&quot;about&quot;</span> :       <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
      <span class="hljs-string">&quot;interests&quot;</span>:  [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x5C06; HTTP &#x547D;&#x4EE4;&#x7531; <code>PUT</code> &#x6539;&#x4E3A; <code>GET</code> &#x53EF;&#x4EE5;&#x7528;&#x6765;&#x68C0;&#x7D22;&#x6587;&#x6863;&#xFF0C;&#x540C;&#x6837;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>DELETE</code> &#x547D;&#x4EE4;&#x6765;&#x5220;&#x9664;&#x6587;&#x6863;&#xFF0C;&#x4EE5;&#x53CA;&#x4F7F;&#x7528; <code>HEAD</code> &#x6307;&#x4EE4;&#x6765;&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;&#x3002;&#x5982;&#x679C;&#x60F3;&#x66F4;&#x65B0;&#x5DF2;&#x5B58;&#x5728;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x53EA;&#x9700;&#x518D;&#x6B21; <code>PUT</code>&#x3002;</p>
</blockquote>
<h3 id="&#x8F7B;&#x91CF;&#x641C;&#x7D22;"><a name="&#x8F7B;&#x91CF;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x8F7B;&#x91CF;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x8F7B;&#x91CF;&#x641C;&#x7D22;</h3>
<p>&#x4E00;&#x4E2A; <code>GET</code> &#x662F;&#x76F8;&#x5F53;&#x7B80;&#x5355;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5F97;&#x5230;&#x6307;&#x5B9A;&#x7684;&#x6587;&#x6863;&#x3002; &#x73B0;&#x5728;&#x5C1D;&#x8BD5;&#x70B9;&#x513F;&#x7A0D;&#x5FAE;&#x9AD8;&#x7EA7;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x641C;&#x7D22;&#xFF01;</p>
<p>&#x7B2C;&#x4E00;&#x4E2A;&#x5C1D;&#x8BD5;&#x7684;&#x51E0;&#x4E4E;&#x662F;&#x6700;&#x7B80;&#x5355;&#x7684;&#x641C;&#x7D22;&#x4E86;&#x3002;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4E0B;&#x5217;&#x8BF7;&#x6C42;&#x6765;&#x641C;&#x7D22;&#x6240;&#x6709;&#x96C7;&#x5458;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
</code></pre>
<p>&#x53EF;&#x4EE5;&#x770B;&#x5230;&#xFF0C;&#x6211;&#x4EEC;&#x4ECD;&#x7136;&#x4F7F;&#x7528;&#x7D22;&#x5F15;&#x5E93; <code>megacorp</code> &#x4EE5;&#x53CA;&#x7C7B;&#x578B; <code>employee</code>&#xFF0C;&#x4F46;&#x4E0E;&#x6307;&#x5B9A;&#x4E00;&#x4E2A;&#x6587;&#x6863; ID &#x4E0D;&#x540C;&#xFF0C;&#x8FD9;&#x6B21;&#x4F7F;&#x7528; <code>_search</code> &#x3002;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x5305;&#x62EC;&#x4E86;&#x6240;&#x6709;&#x4E09;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x653E;&#x5728;&#x6570;&#x7EC4; <code>hits</code> &#x4E2D;&#x3002;&#x4E00;&#x4E2A;&#x641C;&#x7D22;&#x9ED8;&#x8BA4;&#x8FD4;&#x56DE;&#x5341;&#x6761;&#x7ED3;&#x679C;&#x3002;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;took&quot;</span>:      <span class="hljs-number">6</span>,
   <span class="hljs-string">&quot;timed_out&quot;</span>: <span class="hljs-literal">false</span>,
   <span class="hljs-string">&quot;_shards&quot;</span>: { ... },
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">3</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">1</span>,
      <span class="hljs-string">&quot;hits&quot;</span>: [
         {
            <span class="hljs-string">&quot;_index&quot;</span>:         <span class="hljs-string">&quot;megacorp&quot;</span>,
            <span class="hljs-string">&quot;_type&quot;</span>:          <span class="hljs-string">&quot;employee&quot;</span>,
            <span class="hljs-string">&quot;_id&quot;</span>:            <span class="hljs-string">&quot;3&quot;</span>,
            <span class="hljs-string">&quot;_score&quot;</span>:         <span class="hljs-number">1</span>,
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;Douglas&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Fir&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">35</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I like to build cabinets&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;forestry&quot;</span> ]
            }
         },
         {
            <span class="hljs-string">&quot;_index&quot;</span>:         <span class="hljs-string">&quot;megacorp&quot;</span>,
            <span class="hljs-string">&quot;_type&quot;</span>:          <span class="hljs-string">&quot;employee&quot;</span>,
            <span class="hljs-string">&quot;_id&quot;</span>:            <span class="hljs-string">&quot;1&quot;</span>,
            <span class="hljs-string">&quot;_score&quot;</span>:         <span class="hljs-number">1</span>,
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;John&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">25</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
            }
         },
         {
            <span class="hljs-string">&quot;_index&quot;</span>:         <span class="hljs-string">&quot;megacorp&quot;</span>,
            <span class="hljs-string">&quot;_type&quot;</span>:          <span class="hljs-string">&quot;employee&quot;</span>,
            <span class="hljs-string">&quot;_id&quot;</span>:            <span class="hljs-string">&quot;2&quot;</span>,
            <span class="hljs-string">&quot;_score&quot;</span>:         <span class="hljs-number">1</span>,
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;Jane&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">32</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I like to collect rock albums&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;music&quot;</span> ]
            }
         }
      ]
   }
}
</code></pre>
<p>&#x6CE8;&#x610F;&#xFF1A;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x4E0D;&#x4EC5;&#x544A;&#x77E5;&#x5339;&#x914D;&#x4E86;&#x54EA;&#x4E9B;&#x6587;&#x6863;&#xFF0C;&#x8FD8;&#x5305;&#x542B;&#x4E86;&#x6574;&#x4E2A;&#x6587;&#x6863;&#x672C;&#x8EAB;&#xFF1A;&#x663E;&#x793A;&#x641C;&#x7D22;&#x7ED3;&#x679C;&#x7ED9;&#x6700;&#x7EC8;&#x7528;&#x6237;&#x6240;&#x9700;&#x7684;&#x5168;&#x90E8;&#x4FE1;&#x606F;&#x3002;</p>
<p>&#x63A5;&#x4E0B;&#x6765;&#xFF0C;&#x5C1D;&#x8BD5;&#x4E0B;&#x641C;&#x7D22;&#x59D3;&#x6C0F;&#x4E3A; <code>Smith</code> &#x7684;&#x96C7;&#x5458;&#x3002;&#x4E3A;&#x6B64;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;&#x4E00;&#x4E2A; <em>&#x9AD8;&#x4EAE;</em> &#x641C;&#x7D22;&#xFF0C;&#x5F88;&#x5BB9;&#x6613;&#x901A;&#x8FC7;&#x547D;&#x4EE4;&#x884C;&#x5B8C;&#x6210;&#x3002;&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#x4E00;&#x822C;&#x6D89;&#x53CA;&#x5230;&#x4E00;&#x4E2A; <em>&#x67E5;&#x8BE2;&#x5B57;&#x7B26;&#x4E32;</em> &#xFF08;<em>query-string</em>&#xFF09; &#x641C;&#x7D22;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;URL&#x53C2;&#x6570;&#x6765;&#x4F20;&#x9012;&#x67E5;&#x8BE2;&#x4FE1;&#x606F;&#x7ED9;&#x641C;&#x7D22;&#x63A5;&#x53E3;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search?q=last_name:Smith
</code></pre>
<p>&#x6211;&#x4EEC;&#x4ECD;&#x7136;&#x5728;&#x8BF7;&#x6C42;&#x8DEF;&#x5F84;&#x4E2D;&#x4F7F;&#x7528; <code>_search</code> &#x7AEF;&#x70B9;&#xFF0C;&#x5E76;&#x5C06;&#x67E5;&#x8BE2;&#x672C;&#x8EAB;&#x8D4B;&#x503C;&#x7ED9;&#x53C2;&#x6570; <code>q=</code> &#x3002;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x7ED9;&#x51FA;&#x4E86;&#x6240;&#x6709;&#x7684; Smith&#xFF1A;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">2</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">0.30685282</span>,
      <span class="hljs-string">&quot;hits&quot;</span>: [
         {
            ...
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;John&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">25</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
            }
         },
         {
            ...
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;Jane&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">32</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I like to collect rock albums&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;music&quot;</span> ]
            }
         }
      ]
   }
}
</code></pre>
<h3 id="&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;"><a name="&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4F7F;&#x7528;&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;&#x641C;&#x7D22;</h3>
<p>Query-string &#x641C;&#x7D22;&#x901A;&#x8FC7;&#x547D;&#x4EE4;&#x975E;&#x5E38;&#x65B9;&#x4FBF;&#x5730;&#x8FDB;&#x884C;&#x4E34;&#x65F6;&#x6027;&#x7684;&#x5373;&#x5E2D;&#x641C;&#x7D22; &#xFF0C;&#x4F46;&#x5B83;&#x6709;&#x81EA;&#x8EAB;&#x7684;&#x5C40;&#x9650;&#x6027;&#xFF08;&#x53C2;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/search-lite.html" target="_blank"><em>&#x8F7B;&#x91CF;</em> &#x641C;&#x7D22;</a>&#xFF09;&#x3002;Elasticsearch &#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x4E30;&#x5BCC;&#x7075;&#x6D3B;&#x7684;&#x67E5;&#x8BE2;&#x8BED;&#x8A00;&#x53EB;&#x505A; <em>&#x67E5;&#x8BE2;&#x8868;&#x8FBE;&#x5F0F;</em> &#xFF0C; &#x5B83;&#x652F;&#x6301;&#x6784;&#x5EFA;&#x66F4;&#x52A0;&#x590D;&#x6742;&#x548C;&#x5065;&#x58EE;&#x7684;&#x67E5;&#x8BE2;&#x3002;</p>
<p><em>&#x9886;&#x57DF;&#x7279;&#x5B9A;&#x8BED;&#x8A00;</em> &#xFF08;DSL&#xFF09;&#xFF0C; &#x6307;&#x5B9A;&#x4E86;&#x4F7F;&#x7528;&#x4E00;&#x4E2A; JSON &#x8BF7;&#x6C42;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x50CF;&#x8FD9;&#x6837;&#x91CD;&#x5199;&#x4E4B;&#x524D;&#x7684;&#x67E5;&#x8BE2;&#x6240;&#x6709; Smith &#x7684;&#x641C;&#x7D22; &#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;query&quot;</span> : {
        <span class="hljs-string">&quot;match&quot;</span> : {
            <span class="hljs-string">&quot;last_name&quot;</span> : <span class="hljs-string">&quot;Smith&quot;</span>
        }
    }
}
</code></pre>
<p>&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x4E0E;&#x4E4B;&#x524D;&#x7684;&#x67E5;&#x8BE2;&#x4E00;&#x6837;&#xFF0C;&#x4F46;&#x8FD8;&#x662F;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6709;&#x4E00;&#x4E9B;&#x53D8;&#x5316;&#x3002;&#x5176;&#x4E2D;&#x4E4B;&#x4E00;&#x662F;&#xFF0C;&#x4E0D;&#x518D;&#x4F7F;&#x7528; <em>query-string</em> &#x53C2;&#x6570;&#xFF0C;&#x800C;&#x662F;&#x4E00;&#x4E2A;&#x8BF7;&#x6C42;&#x4F53;&#x66FF;&#x4EE3;&#x3002;&#x8FD9;&#x4E2A;&#x8BF7;&#x6C42;&#x4F7F;&#x7528; JSON &#x6784;&#x9020;&#xFF0C;&#x5E76;&#x4F7F;&#x7528;&#x4E86;&#x4E00;&#x4E2A; <code>match</code> &#x67E5;&#x8BE2;&#xFF08;&#x5C5E;&#x4E8E;&#x67E5;&#x8BE2;&#x7C7B;&#x578B;&#x4E4B;&#x4E00;&#xFF0C;&#x540E;&#x7EED;&#x5C06;&#x4F1A;&#x4E86;&#x89E3;&#xFF09;&#x3002;</p>
<h3 id="&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;"><a name="&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;</h3>
<p>&#x73B0;&#x5728;&#x5C1D;&#x8BD5;&#x4E0B;&#x66F4;&#x590D;&#x6742;&#x7684;&#x641C;&#x7D22;&#x3002; &#x540C;&#x6837;&#x641C;&#x7D22;&#x59D3;&#x6C0F;&#x4E3A; Smith &#x7684;&#x96C7;&#x5458;&#xFF0C;&#x4F46;&#x8FD9;&#x6B21;&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x8981;&#x5E74;&#x9F84;&#x5927;&#x4E8E; 30 &#x7684;&#x3002;&#x67E5;&#x8BE2;&#x9700;&#x8981;&#x7A0D;&#x4F5C;&#x8C03;&#x6574;&#xFF0C;&#x4F7F;&#x7528;&#x8FC7;&#x6EE4;&#x5668; <em>filter</em> &#xFF0C;&#x5B83;&#x652F;&#x6301;&#x9AD8;&#x6548;&#x5730;&#x6267;&#x884C;&#x4E00;&#x4E2A;&#x7ED3;&#x6784;&#x5316;&#x67E5;&#x8BE2;&#x3002;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;query&quot;</span> : {
        <span class="hljs-string">&quot;bool&quot;</span>: {
            <span class="hljs-string">&quot;must&quot;</span>: {
                <span class="hljs-string">&quot;match&quot;</span> : {
                    <span class="hljs-string">&quot;last_name&quot;</span> : <span class="hljs-string">&quot;smith&quot;</span>     &lt;<span class="hljs-number">1</span>&gt;
                }
            },
            <span class="hljs-string">&quot;filter&quot;</span>: {
                <span class="hljs-string">&quot;range&quot;</span> : {
                    <span class="hljs-string">&quot;age&quot;</span> : { <span class="hljs-string">&quot;gt&quot;</span> : <span class="hljs-number">30</span> }     &lt;<span class="hljs-number">2</span>&gt;
                }
            }
        }
    }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">    &#x8FD9;&#x90E8;&#x5206;&#x4E0E;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x4F7F;&#x7528;&#x7684; <code>match</code> <em>&#x67E5;&#x8BE2;</em> &#x4E00;&#x6837;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x8FD9;&#x90E8;&#x5206;&#x662F;&#x4E00;&#x4E2A; <code>range</code> <em>&#x8FC7;&#x6EE4;&#x5668;</em> &#xFF0C; &#x5B83;&#x80FD;&#x627E;&#x5230;&#x5E74;&#x9F84;&#x5927;&#x4E8E; 30 &#x7684;&#x6587;&#x6863;&#xFF0C;&#x5176;&#x4E2D; <code>gt</code> &#x8868;&#x793A;_&#x5927;&#x4E8E;<em>(_great than</em>)&#x3002;  </p>
</blockquote>
<p>&#x76EE;&#x524D;&#x65E0;&#x9700;&#x592A;&#x591A;&#x62C5;&#x5FC3;&#x8BED;&#x6CD5;&#x95EE;&#x9898;&#xFF0C;&#x540E;&#x7EED;&#x4F1A;&#x66F4;&#x8BE6;&#x7EC6;&#x5730;&#x4ECB;&#x7ECD;&#x3002;&#x53EA;&#x9700;&#x660E;&#x786E;&#x6211;&#x4EEC;&#x6DFB;&#x52A0;&#x4E86;&#x4E00;&#x4E2A; <em>&#x8FC7;&#x6EE4;&#x5668;</em> &#x7528;&#x4E8E;&#x6267;&#x884C;&#x4E00;&#x4E2A;&#x8303;&#x56F4;&#x67E5;&#x8BE2;&#xFF0C;&#x5E76;&#x590D;&#x7528;&#x4E4B;&#x524D;&#x7684; <code>match</code> &#x67E5;&#x8BE2;&#x3002;&#x73B0;&#x5728;&#x7ED3;&#x679C;&#x53EA;&#x8FD4;&#x56DE;&#x4E86;&#x4E00;&#x4E2A;&#x96C7;&#x5458;&#xFF0C;&#x53EB; Jane Smith&#xFF0C;32 &#x5C81;&#x3002;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">1</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">0.30685282</span>,
      <span class="hljs-string">&quot;hits&quot;</span>: [
         {
            ...
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;Jane&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">32</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I like to collect rock albums&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;music&quot;</span> ]
            }
         }
      ]
   }
}
</code></pre>
<h3 id="&#x5168;&#x6587;&#x641C;&#x7D22;"><a name="&#x5168;&#x6587;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x5168;&#x6587;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5168;&#x6587;&#x641C;&#x7D22;</h3>
<p>&#x622A;&#x6B62;&#x76EE;&#x524D;&#x7684;&#x641C;&#x7D22;&#x76F8;&#x5BF9;&#x90FD;&#x5F88;&#x7B80;&#x5355;&#xFF1A;&#x5355;&#x4E2A;&#x59D3;&#x540D;&#xFF0C;&#x901A;&#x8FC7;&#x5E74;&#x9F84;&#x8FC7;&#x6EE4;&#x3002;&#x73B0;&#x5728;&#x5C1D;&#x8BD5;&#x4E0B;&#x7A0D;&#x5FAE;&#x9AD8;&#x7EA7;&#x70B9;&#x513F;&#x7684;&#x5168;&#x6587;&#x641C;&#x7D22;&#x2014;&#x2014;&#x4E00;&#x9879;&#x4F20;&#x7EDF;&#x6570;&#x636E;&#x5E93;&#x786E;&#x5B9E;&#x5F88;&#x96BE;&#x641E;&#x5B9A;&#x7684;&#x4EFB;&#x52A1;&#x3002;</p>
<p>&#x641C;&#x7D22;&#x4E0B;&#x6240;&#x6709;&#x559C;&#x6B22;&#x6500;&#x5CA9;&#xFF08;rock climbing&#xFF09;&#x7684;&#x96C7;&#x5458;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;query&quot;</span> : {
        <span class="hljs-string">&quot;match&quot;</span> : {
            <span class="hljs-string">&quot;about&quot;</span> : <span class="hljs-string">&quot;rock climbing&quot;</span>
        }
    }
}
</code></pre>
<p>&#x663E;&#x7136;&#x6211;&#x4EEC;&#x4F9D;&#x65E7;&#x4F7F;&#x7528;&#x4E4B;&#x524D;&#x7684; <code>match</code> &#x67E5;&#x8BE2;&#x5728;<code>about</code> &#x5C5E;&#x6027;&#x4E0A;&#x641C;&#x7D22; &#x201C;rock climbing&#x201D; &#x3002;&#x5F97;&#x5230;&#x4E24;&#x4E2A;&#x5339;&#x914D;&#x7684;&#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">2</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">0.16273327</span>,                                &lt;1&gt;
      &quot;hits&quot;: [
         {
            ...
            &quot;_score&quot;:         0.16273327, 
            &quot;_source&quot;: {
               &quot;first_name&quot;:  &quot;John&quot;,
               &quot;last_name&quot;:   &quot;Smith&quot;,
               &quot;age&quot;:         25,
               &quot;about&quot;:       &quot;I love to go rock climbing&quot;,
               &quot;interests&quot;: [ &quot;sports&quot;, &quot;music&quot; ]
            }
         },
         {
            ...
            &quot;_score&quot;:         0.016878016,                    &lt;2&gt;
            &quot;_source&quot;: {
               &quot;first_name&quot;:  &quot;Jane&quot;,
               &quot;last_name&quot;:   &quot;Smith&quot;,
               &quot;age&quot;:         32,
               &quot;about&quot;:       &quot;I like to collect rock albums&quot;,
               &quot;interests&quot;: [ &quot;music&quot; ]
            }
         }
      ]
   }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <img src="assets/2.png" alt="img">   &#x76F8;&#x5173;&#x6027;&#x5F97;&#x5206;     </p>
</blockquote>
<p>Elasticsearch &#x9ED8;&#x8BA4;&#x6309;&#x7167;&#x76F8;&#x5173;&#x6027;&#x5F97;&#x5206;&#x6392;&#x5E8F;&#xFF0C;&#x5373;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x8DDF;&#x67E5;&#x8BE2;&#x7684;&#x5339;&#x914D;&#x7A0B;&#x5EA6;&#x3002;&#x7B2C;&#x4E00;&#x4E2A;&#x6700;&#x9AD8;&#x5F97;&#x5206;&#x7684;&#x7ED3;&#x679C;&#x5F88;&#x660E;&#x663E;&#xFF1A;John Smith &#x7684; <code>about</code> &#x5C5E;&#x6027;&#x6E05;&#x695A;&#x5730;&#x5199;&#x7740; &#x201C;rock climbing&#x201D; &#x3002;</p>
<p>&#x4F46;&#x4E3A;&#x4EC0;&#x4E48; Jane Smith &#x4E5F;&#x4F5C;&#x4E3A;&#x7ED3;&#x679C;&#x8FD4;&#x56DE;&#x4E86;&#x5462;&#xFF1F;&#x539F;&#x56E0;&#x662F;&#x5979;&#x7684; <code>about</code> &#x5C5E;&#x6027;&#x91CC;&#x63D0;&#x5230;&#x4E86; &#x201C;rock&#x201D; &#x3002;&#x56E0;&#x4E3A;&#x53EA;&#x6709; &#x201C;rock&#x201D; &#x800C;&#x6CA1;&#x6709; &#x201C;climbing&#x201D; &#xFF0C;&#x6240;&#x4EE5;&#x5979;&#x7684;&#x76F8;&#x5173;&#x6027;&#x5F97;&#x5206;&#x4F4E;&#x4E8E; John &#x7684;&#x3002;</p>
<p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5F88;&#x597D;&#x7684;&#x6848;&#x4F8B;&#xFF0C;&#x9610;&#x660E;&#x4E86; Elasticsearch &#x5982;&#x4F55; <em>&#x5728;</em> &#x5168;&#x6587;&#x5C5E;&#x6027;&#x4E0A;&#x641C;&#x7D22;&#x5E76;&#x8FD4;&#x56DE;&#x76F8;&#x5173;&#x6027;&#x6700;&#x5F3A;&#x7684;&#x7ED3;&#x679C;&#x3002;Elasticsearch&#x4E2D;&#x7684; <em>&#x76F8;&#x5173;&#x6027;</em> &#x6982;&#x5FF5;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x4E5F;&#x662F;&#x5B8C;&#x5168;&#x533A;&#x522B;&#x4E8E;&#x4F20;&#x7EDF;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x7684;&#x4E00;&#x4E2A;&#x6982;&#x5FF5;&#xFF0C;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x7684;&#x4E00;&#x6761;&#x8BB0;&#x5F55;&#x8981;&#x4E48;&#x5339;&#x914D;&#x8981;&#x4E48;&#x4E0D;&#x5339;&#x914D;&#x3002;</p>
<h3 id="&#x77ED;&#x8BED;&#x641C;&#x7D22;"><a name="&#x77ED;&#x8BED;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x77ED;&#x8BED;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x77ED;&#x8BED;&#x641C;&#x7D22;</h3>
<p>&#x627E;&#x51FA;&#x4E00;&#x4E2A;&#x5C5E;&#x6027;&#x4E2D;&#x7684;&#x72EC;&#x7ACB;&#x5355;&#x8BCD;&#x662F;&#x6CA1;&#x6709;&#x95EE;&#x9898;&#x7684;&#xFF0C;&#x4F46;&#x6709;&#x65F6;&#x5019;&#x60F3;&#x8981;&#x7CBE;&#x786E;&#x5339;&#x914D;&#x4E00;&#x7CFB;&#x5217;&#x5355;&#x8BCD;&#x6216;&#x8005;<em>&#x77ED;&#x8BED;</em> &#x3002; &#x6BD4;&#x5982;&#xFF0C; &#x6211;&#x4EEC;&#x60F3;&#x6267;&#x884C;&#x8FD9;&#x6837;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#xFF0C;&#x4EC5;&#x5339;&#x914D;&#x540C;&#x65F6;&#x5305;&#x542B; &#x201C;rock&#x201D; <em>&#x548C;</em> &#x201C;climbing&#x201D; &#xFF0C;<em>&#x5E76;&#x4E14;</em> &#x4E8C;&#x8005;&#x4EE5;&#x77ED;&#x8BED; &#x201C;rock climbing&#x201D; &#x7684;&#x5F62;&#x5F0F;&#x7D27;&#x6328;&#x7740;&#x7684;&#x96C7;&#x5458;&#x8BB0;&#x5F55;&#x3002;</p>
<p>&#x4E3A;&#x6B64;&#x5BF9; <code>match</code> &#x67E5;&#x8BE2;&#x7A0D;&#x4F5C;&#x8C03;&#x6574;&#xFF0C;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x53EB;&#x505A; <code>match_phrase</code> &#x7684;&#x67E5;&#x8BE2;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;query&quot;</span> : {
        <span class="hljs-string">&quot;match_phrase&quot;</span> : {
            <span class="hljs-string">&quot;about&quot;</span> : <span class="hljs-string">&quot;rock climbing&quot;</span>
        }
    }
}
</code></pre>
<p>&#x6BEB;&#x65E0;&#x60AC;&#x5FF5;&#xFF0C;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x4EC5;&#x6709; John Smith &#x7684;&#x6587;&#x6863;&#x3002;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">1</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">0.23013961</span>,
      <span class="hljs-string">&quot;hits&quot;</span>: [
         {
            ...
            <span class="hljs-string">&quot;_score&quot;</span>:         <span class="hljs-number">0.23013961</span>,
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;John&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">25</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
            }
         }
      ]
   }
}
</code></pre>
<h3 id="&#x9AD8;&#x4EAE;&#x641C;&#x7D22;"><a name="&#x9AD8;&#x4EAE;&#x641C;&#x7D22;" class="anchor-navigation-ex-anchor" href="#&#x9AD8;&#x4EAE;&#x641C;&#x7D22;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x9AD8;&#x4EAE;&#x641C;&#x7D22;</h3>
<p>&#x8BB8;&#x591A;&#x5E94;&#x7528;&#x90FD;&#x503E;&#x5411;&#x4E8E;&#x5728;&#x6BCF;&#x4E2A;&#x641C;&#x7D22;&#x7ED3;&#x679C;&#x4E2D; <em>&#x9AD8;&#x4EAE;</em> &#x90E8;&#x5206;&#x6587;&#x672C;&#x7247;&#x6BB5;&#xFF0C;&#x4EE5;&#x4FBF;&#x8BA9;&#x7528;&#x6237;&#x77E5;&#x9053;&#x4E3A;&#x4F55;&#x8BE5;&#x6587;&#x6863;&#x7B26;&#x5408;&#x67E5;&#x8BE2;&#x6761;&#x4EF6;&#x3002;&#x5728; Elasticsearch &#x4E2D;&#x68C0;&#x7D22;&#x51FA;&#x9AD8;&#x4EAE;&#x7247;&#x6BB5;&#x4E5F;&#x5F88;&#x5BB9;&#x6613;&#x3002;</p>
<p>&#x518D;&#x6B21;&#x6267;&#x884C;&#x524D;&#x9762;&#x7684;&#x67E5;&#x8BE2;&#xFF0C;&#x5E76;&#x589E;&#x52A0;&#x4E00;&#x4E2A;&#x65B0;&#x7684; <code>highlight</code> &#x53C2;&#x6570;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;query&quot;</span> : {
        <span class="hljs-string">&quot;match_phrase&quot;</span> : {
            <span class="hljs-string">&quot;about&quot;</span> : <span class="hljs-string">&quot;rock climbing&quot;</span>
        }
    },
    <span class="hljs-string">&quot;highlight&quot;</span>: {
        <span class="hljs-string">&quot;fields&quot;</span> : {
            <span class="hljs-string">&quot;about&quot;</span> : {}
        }
    }
}
</code></pre>
<p>&#x5F53;&#x6267;&#x884C;&#x8BE5;&#x67E5;&#x8BE2;&#x65F6;&#xFF0C;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x4E0E;&#x4E4B;&#x524D;&#x4E00;&#x6837;&#xFF0C;&#x4E0E;&#x6B64;&#x540C;&#x65F6;&#x7ED3;&#x679C;&#x4E2D;&#x8FD8;&#x591A;&#x4E86;&#x4E00;&#x4E2A;&#x53EB;&#x505A; <code>highlight</code> &#x7684;&#x90E8;&#x5206;&#x3002;&#x8FD9;&#x4E2A;&#x90E8;&#x5206;&#x5305;&#x542B;&#x4E86; <code>about</code> &#x5C5E;&#x6027;&#x5339;&#x914D;&#x7684;&#x6587;&#x672C;&#x7247;&#x6BB5;&#xFF0C;&#x5E76;&#x4EE5; HTML &#x6807;&#x7B7E; <code>&lt;em&gt;&lt;/em&gt;</code> &#x5C01;&#x88C5;&#xFF1A;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: {
      <span class="hljs-string">&quot;total&quot;</span>:      <span class="hljs-number">1</span>,
      <span class="hljs-string">&quot;max_score&quot;</span>:  <span class="hljs-number">0.23013961</span>,
      <span class="hljs-string">&quot;hits&quot;</span>: [
         {
            ...
            <span class="hljs-string">&quot;_score&quot;</span>:         <span class="hljs-number">0.23013961</span>,
            <span class="hljs-string">&quot;_source&quot;</span>: {
               <span class="hljs-string">&quot;first_name&quot;</span>:  <span class="hljs-string">&quot;John&quot;</span>,
               <span class="hljs-string">&quot;last_name&quot;</span>:   <span class="hljs-string">&quot;Smith&quot;</span>,
               <span class="hljs-string">&quot;age&quot;</span>:         <span class="hljs-number">25</span>,
               <span class="hljs-string">&quot;about&quot;</span>:       <span class="hljs-string">&quot;I love to go rock climbing&quot;</span>,
               <span class="hljs-string">&quot;interests&quot;</span>: [ <span class="hljs-string">&quot;sports&quot;</span>, <span class="hljs-string">&quot;music&quot;</span> ]
            },
            <span class="hljs-string">&quot;highlight&quot;</span>: {
               <span class="hljs-string">&quot;about&quot;</span>: [
                  <span class="hljs-string">&quot;I love to go &lt;em&gt;rock&lt;/em&gt; &lt;em&gt;climbing&lt;/em&gt;&quot;</span>         &lt;<span class="hljs-number">1</span>&gt;
               ]
            }
         }
      ]
   }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x539F;&#x59CB;&#x6587;&#x672C;&#x4E2D;&#x7684;&#x9AD8;&#x4EAE;&#x7247;&#x6BB5;   </p>
</blockquote>
<p>&#x5173;&#x4E8E;&#x9AD8;&#x4EAE;&#x641C;&#x7D22;&#x7247;&#x6BB5;&#xFF0C;&#x53EF;&#x4EE5;&#x5728; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-highlighting.html" target="_blank">highlighting reference documentation</a> &#x4E86;&#x89E3;&#x66F4;&#x591A;&#x4FE1;&#x606F;&#x3002;</p>
<h3 id="&#x5206;&#x6790;"><a name="&#x5206;&#x6790;" class="anchor-navigation-ex-anchor" href="#&#x5206;&#x6790;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5206;&#x6790;</h3>
<p>&#x7EC8;&#x4E8E;&#x5230;&#x4E86;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x4E1A;&#x52A1;&#x9700;&#x6C42;&#xFF1A;&#x652F;&#x6301;&#x7BA1;&#x7406;&#x8005;&#x5BF9;&#x96C7;&#x5458;&#x76EE;&#x5F55;&#x505A;&#x5206;&#x6790;&#x3002; Elasticsearch &#x6709;&#x4E00;&#x4E2A;&#x529F;&#x80FD;&#x53EB;&#x805A;&#x5408;&#xFF08;aggregations&#xFF09;&#xFF0C;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x57FA;&#x4E8E;&#x6570;&#x636E;&#x751F;&#x6210;&#x4E00;&#x4E9B;&#x7CBE;&#x7EC6;&#x7684;&#x5206;&#x6790;&#x7ED3;&#x679C;&#x3002;&#x805A;&#x5408;&#x4E0E; SQL &#x4E2D;&#x7684; <code>GROUP BY</code> &#x7C7B;&#x4F3C;&#x4F46;&#x66F4;&#x5F3A;&#x5927;&#x3002;</p>
<p>&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF0C;&#x6316;&#x6398;&#x51FA;&#x96C7;&#x5458;&#x4E2D;&#x6700;&#x53D7;&#x6B22;&#x8FCE;&#x7684;&#x5174;&#x8DA3;&#x7231;&#x597D;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
  <span class="hljs-string">&quot;aggs&quot;</span>: {
    <span class="hljs-string">&quot;all_interests&quot;</span>: {
      <span class="hljs-string">&quot;terms&quot;</span>: { <span class="hljs-string">&quot;field&quot;</span>: <span class="hljs-string">&quot;interests&quot;</span> }
    }
  }
}
</code></pre>
<p>&#x6682;&#x65F6;&#x5FFD;&#x7565;&#x6389;&#x8BED;&#x6CD5;&#xFF0C;&#x76F4;&#x63A5;&#x770B;&#x770B;&#x7ED3;&#x679C;&#xFF1A;</p>
<pre><code class="lang-js">{
   ...
   <span class="hljs-string">&quot;hits&quot;</span>: { ... },
   <span class="hljs-string">&quot;aggregations&quot;</span>: {
      <span class="hljs-string">&quot;all_interests&quot;</span>: {
         <span class="hljs-string">&quot;buckets&quot;</span>: [
            {
               <span class="hljs-string">&quot;key&quot;</span>:       <span class="hljs-string">&quot;music&quot;</span>,
               <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">2</span>
            },
            {
               <span class="hljs-string">&quot;key&quot;</span>:       <span class="hljs-string">&quot;forestry&quot;</span>,
               <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">1</span>
            },
            {
               <span class="hljs-string">&quot;key&quot;</span>:       <span class="hljs-string">&quot;sports&quot;</span>,
               <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">1</span>
            }
         ]
      }
   }
}
</code></pre>
<p>&#x53EF;&#x4EE5;&#x770B;&#x5230;&#xFF0C;&#x4E24;&#x4F4D;&#x5458;&#x5DE5;&#x5BF9;&#x97F3;&#x4E50;&#x611F;&#x5174;&#x8DA3;&#xFF0C;&#x4E00;&#x4F4D;&#x5BF9;&#x6797;&#x5730;&#x611F;&#x5174;&#x8DA3;&#xFF0C;&#x4E00;&#x4F4D;&#x5BF9;&#x8FD0;&#x52A8;&#x611F;&#x5174;&#x8DA3;&#x3002;&#x8FD9;&#x4E9B;&#x805A;&#x5408;&#x5E76;&#x975E;&#x9884;&#x5148;&#x7EDF;&#x8BA1;&#xFF0C;&#x800C;&#x662F;&#x4ECE;&#x5339;&#x914D;&#x5F53;&#x524D;&#x67E5;&#x8BE2;&#x7684;&#x6587;&#x6863;&#x4E2D;&#x5373;&#x65F6;&#x751F;&#x6210;&#x3002;&#x5982;&#x679C;&#x60F3;&#x77E5;&#x9053;&#x53EB; Smith &#x7684;&#x96C7;&#x5458;&#x4E2D;&#x6700;&#x53D7;&#x6B22;&#x8FCE;&#x7684;&#x5174;&#x8DA3;&#x7231;&#x597D;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x6DFB;&#x52A0;&#x9002;&#x5F53;&#x7684;&#x67E5;&#x8BE2;&#x6765;&#x7EC4;&#x5408;&#x67E5;&#x8BE2;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
  <span class="hljs-string">&quot;query&quot;</span>: {
    <span class="hljs-string">&quot;match&quot;</span>: {
      <span class="hljs-string">&quot;last_name&quot;</span>: <span class="hljs-string">&quot;smith&quot;</span>
    }
  },
  <span class="hljs-string">&quot;aggs&quot;</span>: {
    <span class="hljs-string">&quot;all_interests&quot;</span>: {
      <span class="hljs-string">&quot;terms&quot;</span>: {
        <span class="hljs-string">&quot;field&quot;</span>: <span class="hljs-string">&quot;interests&quot;</span>
      }
    }
  }
}
</code></pre>
<p><code>all_interests</code> &#x805A;&#x5408;&#x5DF2;&#x7ECF;&#x53D8;&#x4E3A;&#x53EA;&#x5305;&#x542B;&#x5339;&#x914D;&#x67E5;&#x8BE2;&#x7684;&#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">  ...
  <span class="hljs-string">&quot;all_interests&quot;</span>: {
     <span class="hljs-string">&quot;buckets&quot;</span>: [
        {
           <span class="hljs-string">&quot;key&quot;</span>: <span class="hljs-string">&quot;music&quot;</span>,
           <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">2</span>
        },
        {
           <span class="hljs-string">&quot;key&quot;</span>: <span class="hljs-string">&quot;sports&quot;</span>,
           <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">1</span>
        }
     ]
  }
</code></pre>
<p>&#x805A;&#x5408;&#x8FD8;&#x652F;&#x6301;&#x5206;&#x7EA7;&#x6C47;&#x603B; &#x3002;&#x6BD4;&#x5982;&#xFF0C;&#x67E5;&#x8BE2;&#x7279;&#x5B9A;&#x5174;&#x8DA3;&#x7231;&#x597D;&#x5458;&#x5DE5;&#x7684;&#x5E73;&#x5747;&#x5E74;&#x9F84;&#xFF1A;</p>
<pre><code class="lang-js">GET /megacorp/employee/_search
{
    <span class="hljs-string">&quot;aggs&quot;</span> : {
        <span class="hljs-string">&quot;all_interests&quot;</span> : {
            <span class="hljs-string">&quot;terms&quot;</span> : { <span class="hljs-string">&quot;field&quot;</span> : <span class="hljs-string">&quot;interests&quot;</span> },
            <span class="hljs-string">&quot;aggs&quot;</span> : {
                <span class="hljs-string">&quot;avg_age&quot;</span> : {
                    <span class="hljs-string">&quot;avg&quot;</span> : { <span class="hljs-string">&quot;field&quot;</span> : <span class="hljs-string">&quot;age&quot;</span> }
                }
            }
        }
    }
}
</code></pre>
<p>&#x5F97;&#x5230;&#x7684;&#x805A;&#x5408;&#x7ED3;&#x679C;&#x6709;&#x70B9;&#x513F;&#x590D;&#x6742;&#xFF0C;&#x4F46;&#x7406;&#x89E3;&#x8D77;&#x6765;&#x8FD8;&#x662F;&#x5F88;&#x7B80;&#x5355;&#x7684;&#xFF1A;</p>
<pre><code class="lang-js">  ...
  <span class="hljs-string">&quot;all_interests&quot;</span>: {
     <span class="hljs-string">&quot;buckets&quot;</span>: [
        {
           <span class="hljs-string">&quot;key&quot;</span>: <span class="hljs-string">&quot;music&quot;</span>,
           <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">2</span>,
           <span class="hljs-string">&quot;avg_age&quot;</span>: {
              <span class="hljs-string">&quot;value&quot;</span>: <span class="hljs-number">28.5</span>
           }
        },
        {
           <span class="hljs-string">&quot;key&quot;</span>: <span class="hljs-string">&quot;forestry&quot;</span>,
           <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">1</span>,
           <span class="hljs-string">&quot;avg_age&quot;</span>: {
              <span class="hljs-string">&quot;value&quot;</span>: <span class="hljs-number">35</span>
           }
        },
        {
           <span class="hljs-string">&quot;key&quot;</span>: <span class="hljs-string">&quot;sports&quot;</span>,
           <span class="hljs-string">&quot;doc_count&quot;</span>: <span class="hljs-number">1</span>,
           <span class="hljs-string">&quot;avg_age&quot;</span>: {
              <span class="hljs-string">&quot;value&quot;</span>: <span class="hljs-number">25</span>
           }
        }
     ]
  }
</code></pre>
<p>&#x8F93;&#x51FA;&#x57FA;&#x672C;&#x662F;&#x7B2C;&#x4E00;&#x6B21;&#x805A;&#x5408;&#x7684;&#x52A0;&#x5F3A;&#x7248;&#x3002;&#x4F9D;&#x7136;&#x6709;&#x4E00;&#x4E2A;&#x5174;&#x8DA3;&#x53CA;&#x6570;&#x91CF;&#x7684;&#x5217;&#x8868;&#xFF0C;&#x53EA;&#x4E0D;&#x8FC7;&#x6BCF;&#x4E2A;&#x5174;&#x8DA3;&#x90FD;&#x6709;&#x4E86;&#x4E00;&#x4E2A;&#x9644;&#x52A0;&#x7684; <code>avg_age</code> &#x5C5E;&#x6027;&#xFF0C;&#x4EE3;&#x8868;&#x6709;&#x8FD9;&#x4E2A;&#x5174;&#x8DA3;&#x7231;&#x597D;&#x7684;&#x6240;&#x6709;&#x5458;&#x5DE5;&#x7684;&#x5E73;&#x5747;&#x5E74;&#x9F84;&#x3002;</p>
<p>&#x5373;&#x4F7F;&#x73B0;&#x5728;&#x4E0D;&#x592A;&#x7406;&#x89E3;&#x8FD9;&#x4E9B;&#x8BED;&#x6CD5;&#x4E5F;&#x6CA1;&#x6709;&#x5173;&#x7CFB;&#xFF0C;&#x4F9D;&#x7136;&#x5F88;&#x5BB9;&#x6613;&#x4E86;&#x89E3;&#x5230;&#x590D;&#x6742;&#x805A;&#x5408;&#x53CA;&#x5206;&#x7EC4;&#x901A;&#x8FC7; Elasticsearch &#x7279;&#x6027;&#x5B9E;&#x73B0;&#x5F97;&#x5F88;&#x5B8C;&#x7F8E;&#x3002;&#x53EF;&#x63D0;&#x53D6;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x6BEB;&#x65E0;&#x9650;&#x5236;&#x3002;</p>
<h3 id="&#x6559;&#x7A0B;&#x7ED3;&#x8BED;"><a name="&#x6559;&#x7A0B;&#x7ED3;&#x8BED;" class="anchor-navigation-ex-anchor" href="#&#x6559;&#x7A0B;&#x7ED3;&#x8BED;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6559;&#x7A0B;&#x7ED3;&#x8BED;</h3>
<p>&#x6B23;&#x559C;&#x7684;&#x662F;&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5173;&#x4E8E; Elasticsearch &#x57FA;&#x7840;&#x63CF;&#x8FF0;&#x7684;&#x6559;&#x7A0B;&#xFF0C;&#x4E14;&#x4EC5;&#x4EC5;&#x662F;&#x6D45;&#x5C1D;&#x8F84;&#x6B62;&#xFF0C;&#x66F4;&#x591A;&#x8BF8;&#x5982; suggestions&#x3001;geolocation&#x3001;percolation&#x3001;fuzzy &#x4E0E; partial matching &#x7B49;&#x7279;&#x6027;&#x5747;&#x88AB;&#x7701;&#x7565;&#xFF0C;&#x4EE5;&#x4FBF;&#x4FDD;&#x6301;&#x6559;&#x7A0B;&#x7684;&#x7B80;&#x6D01;&#x3002;&#x4F46;&#x5B83;&#x786E;&#x5B9E;&#x7A81;&#x663E;&#x4E86;&#x5F00;&#x59CB;&#x6784;&#x5EFA;&#x9AD8;&#x7EA7;&#x641C;&#x7D22;&#x529F;&#x80FD;&#x591A;&#x4E48;&#x5BB9;&#x6613;&#x3002;&#x4E0D;&#x9700;&#x8981;&#x914D;&#x7F6E;&#x2014;&#x2014;&#x53EA;&#x9700;&#x8981;&#x6DFB;&#x52A0;&#x6570;&#x636E;&#x5E76;&#x5F00;&#x59CB;&#x641C;&#x7D22;&#xFF01;</p>
<p>&#x5F88;&#x53EF;&#x80FD;&#x8BED;&#x6CD5;&#x4F1A;&#x8BA9;&#x4F60;&#x5728;&#x67D0;&#x4E9B;&#x5730;&#x65B9;&#x6709;&#x6240;&#x56F0;&#x60D1;&#xFF0C;&#x5E76;&#x4E14;&#x5BF9;&#x5404;&#x4E2A;&#x65B9;&#x9762;&#x5982;&#x4F55;&#x5FAE;&#x8C03;&#x4E5F;&#x6709;&#x4E00;&#x4E9B;&#x95EE;&#x9898;&#x3002;&#x6CA1;&#x5173;&#x7CFB;&#xFF01;&#x672C;&#x4E66;&#x540E;&#x7EED;&#x5185;&#x5BB9;&#x5C06;&#x9488;&#x5BF9;&#x6BCF;&#x4E2A;&#x95EE;&#x9898;&#x8BE6;&#x7EC6;&#x89E3;&#x91CA;&#xFF0C;&#x8BA9;&#x4F60;&#x5168;&#x65B9;&#x4F4D;&#x5730;&#x7406;&#x89E3; Elasticsearch &#x7684;&#x5DE5;&#x4F5C;&#x539F;&#x7406;&#x3002;</p>
<h3 id="&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;"><a name="&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;" class="anchor-navigation-ex-anchor" href="#&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;</h3>
<p>&#x5728;&#x672C;&#x7AE0;&#x5F00;&#x5934;&#xFF0C;&#x6211;&#x4EEC;&#x63D0;&#x5230;&#x8FC7; Elasticsearch &#x53EF;&#x4EE5;&#x6A2A;&#x5411;&#x6269;&#x5C55;&#x81F3;&#x6570;&#x767E;&#xFF08;&#x751A;&#x81F3;&#x6570;&#x5343;&#xFF09;&#x7684;&#x670D;&#x52A1;&#x5668;&#x8282;&#x70B9;&#xFF0C;&#x540C;&#x65F6;&#x53EF;&#x4EE5;&#x5904;&#x7406;PB&#x7EA7;&#x6570;&#x636E;&#x3002;&#x6211;&#x4EEC;&#x7684;&#x6559;&#x7A0B;&#x7ED9;&#x51FA;&#x4E86;&#x4E00;&#x4E9B;&#x4F7F;&#x7528; Elasticsearch &#x7684;&#x793A;&#x4F8B;&#xFF0C;&#x4F46;&#x5E76;&#x4E0D;&#x6D89;&#x53CA;&#x4EFB;&#x4F55;&#x5185;&#x90E8;&#x673A;&#x5236;&#x3002;Elasticsearch &#x5929;&#x751F;&#x5C31;&#x662F;&#x5206;&#x5E03;&#x5F0F;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x8BBE;&#x8BA1;&#x65F6;&#x5C4F;&#x853D;&#x4E86;&#x5206;&#x5E03;&#x5F0F;&#x7684;&#x590D;&#x6742;&#x6027;&#x3002;</p>
<p>Elasticsearch &#x5728;&#x5206;&#x5E03;&#x5F0F;&#x65B9;&#x9762;&#x51E0;&#x4E4E;&#x662F;&#x900F;&#x660E;&#x7684;&#x3002;&#x6559;&#x7A0B;&#x4E2D;&#x5E76;&#x4E0D;&#x8981;&#x6C42;&#x4E86;&#x89E3;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x3001;&#x5206;&#x7247;&#x3001;&#x96C6;&#x7FA4;&#x53D1;&#x73B0;&#x6216;&#x5176;&#x4ED6;&#x7684;&#x5404;&#x79CD;&#x5206;&#x5E03;&#x5F0F;&#x6982;&#x5FF5;&#x3002;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x7B14;&#x8BB0;&#x672C;&#x4E0A;&#x7684;&#x5355;&#x8282;&#x70B9;&#x8F7B;&#x677E;&#x5730;&#x8FD0;&#x884C;&#x6559;&#x7A0B;&#x91CC;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x4F46;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x8981;&#x5728; 100 &#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x4E0A;&#x8FD0;&#x884C;&#x7A0B;&#x5E8F;&#xFF0C;&#x4E00;&#x5207;&#x4F9D;&#x7136;&#x987A;&#x7545;&#x3002;</p>
<p>Elasticsearch &#x5C3D;&#x53EF;&#x80FD;&#x5730;&#x5C4F;&#x853D;&#x4E86;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x7684;&#x590D;&#x6742;&#x6027;&#x3002;&#x8FD9;&#x91CC;&#x5217;&#x4E3E;&#x4E86;&#x4E00;&#x4E9B;&#x5728;&#x540E;&#x53F0;&#x81EA;&#x52A8;&#x6267;&#x884C;&#x7684;&#x64CD;&#x4F5C;&#xFF1A;</p>
<ul>
<li>&#x5206;&#x914D;&#x6587;&#x6863;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x5BB9;&#x5668; &#x6216; <em>&#x5206;&#x7247;</em> &#x4E2D;&#xFF0C;&#x6587;&#x6863;&#x53EF;&#x4EE5;&#x50A8;&#x5B58;&#x5728;&#x4E00;&#x4E2A;&#x6216;&#x591A;&#x4E2A;&#x8282;&#x70B9;&#x4E2D;</li>
<li>&#x6309;&#x96C6;&#x7FA4;&#x8282;&#x70B9;&#x6765;&#x5747;&#x8861;&#x5206;&#x914D;&#x8FD9;&#x4E9B;&#x5206;&#x7247;&#xFF0C;&#x4ECE;&#x800C;&#x5BF9;&#x7D22;&#x5F15;&#x548C;&#x641C;&#x7D22;&#x8FC7;&#x7A0B;&#x8FDB;&#x884C;&#x8D1F;&#x8F7D;&#x5747;&#x8861;</li>
<li>&#x590D;&#x5236;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x4EE5;&#x652F;&#x6301;&#x6570;&#x636E;&#x5197;&#x4F59;&#xFF0C;&#x4ECE;&#x800C;&#x9632;&#x6B62;&#x786C;&#x4EF6;&#x6545;&#x969C;&#x5BFC;&#x81F4;&#x7684;&#x6570;&#x636E;&#x4E22;&#x5931;</li>
<li>&#x5C06;&#x96C6;&#x7FA4;&#x4E2D;&#x4EFB;&#x4E00;&#x8282;&#x70B9;&#x7684;&#x8BF7;&#x6C42;&#x8DEF;&#x7531;&#x5230;&#x5B58;&#x6709;&#x76F8;&#x5173;&#x6570;&#x636E;&#x7684;&#x8282;&#x70B9;</li>
<li>&#x96C6;&#x7FA4;&#x6269;&#x5BB9;&#x65F6;&#x65E0;&#x7F1D;&#x6574;&#x5408;&#x65B0;&#x8282;&#x70B9;&#xFF0C;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x5206;&#x7247;&#x4EE5;&#x4FBF;&#x4ECE;&#x79BB;&#x7FA4;&#x8282;&#x70B9;&#x6062;&#x590D;</li>
</ul>
<p>&#x5F53;&#x9605;&#x8BFB;&#x672C;&#x4E66;&#x65F6;&#xFF0C;&#x5C06;&#x4F1A;&#x9047;&#x5230;&#x6709;&#x5173; Elasticsearch &#x5206;&#x5E03;&#x5F0F;&#x7279;&#x6027;&#x7684;&#x8865;&#x5145;&#x7AE0;&#x8282;&#x3002;&#x8FD9;&#x4E9B;&#x7AE0;&#x8282;&#x5C06;&#x4ECB;&#x7ECD;&#x6709;&#x5173;&#x96C6;&#x7FA4;&#x6269;&#x5BB9;&#x3001;&#x6545;&#x969C;&#x8F6C;&#x79FB;(<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-cluster.html" target="_blank"><em>&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;</em></a>) &#x3001;&#x5E94;&#x5BF9;&#x6587;&#x6863;&#x5B58;&#x50A8;(<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-docs.html" target="_blank"><em>&#x5206;&#x5E03;&#x5F0F;&#x6587;&#x6863;&#x5B58;&#x50A8;</em></a>) &#x3001;&#x6267;&#x884C;&#x5206;&#x5E03;&#x5F0F;&#x641C;&#x7D22;(<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-search.html" target="_blank"><em>&#x6267;&#x884C;&#x5206;&#x5E03;&#x5F0F;&#x68C0;&#x7D22;</em></a>) &#xFF0C;&#x4EE5;&#x53CA;&#x5206;&#x533A;&#xFF08;shard&#xFF09;&#x53CA;&#x5176;&#x5DE5;&#x4F5C;&#x539F;&#x7406;(<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/inside-a-shard.html" target="_blank"><em>&#x5206;&#x7247;&#x5185;&#x90E8;&#x539F;&#x7406;</em></a>) &#x3002;</p>
<p>&#x8FD9;&#x4E9B;&#x7AE0;&#x8282;&#x5E76;&#x975E;&#x5FC5;&#x8BFB;&#xFF0C;&#x5B8C;&#x5168;&#x53EF;&#x4EE5;&#x65E0;&#x9700;&#x4E86;&#x89E3;&#x5185;&#x90E8;&#x673A;&#x5236;&#x5C31;&#x4F7F;&#x7528; Elasticsearch&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x4EEC;&#x5C06;&#x4ECE;&#x53E6;&#x4E00;&#x4E2A;&#x89D2;&#x5EA6;&#x5E2E;&#x52A9;&#x4F60;&#x4E86;&#x89E3;&#x66F4;&#x5B8C;&#x6574;&#x7684; Elasticsearch &#x77E5;&#x8BC6;&#x3002;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x9700;&#x8981;&#x8DF3;&#x8FC7;&#x5B83;&#x4EEC;&#xFF0C;&#x6216;&#x8005;&#x60F3;&#x66F4;&#x5B8C;&#x6574;&#x5730;&#x7406;&#x89E3;&#x65F6;&#x518D;&#x56DE;&#x5934;&#x9605;&#x8BFB;&#x4E5F;&#x65E0;&#x59A8;&#x3002;</p>
<h3 id="&#x540E;&#x7EED;&#x6B65;&#x9AA4;"><a name="&#x540E;&#x7EED;&#x6B65;&#x9AA4;" class="anchor-navigation-ex-anchor" href="#&#x540E;&#x7EED;&#x6B65;&#x9AA4;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x540E;&#x7EED;&#x6B65;&#x9AA4;</h3>
<p>&#x73B0;&#x5728;&#x5BF9;&#x4E8E;&#x901A;&#x8FC7; Elasticsearch &#x80FD;&#x591F;&#x5B9E;&#x73B0;&#x4EC0;&#x4E48;&#x6837;&#x7684;&#x529F;&#x80FD;&#x3001;&#x4EE5;&#x53CA;&#x4E0A;&#x624B;&#x7684;&#x7B80;&#x6613;&#x7A0B;&#x5EA6;&#x5E94;&#x8BE5;&#x6709;&#x4E86;&#x521D;&#x6B65;&#x6982;&#x5FF5;&#x3002;Elasticsearch &#x529B;&#x56FE;&#x901A;&#x8FC7;&#x6700;&#x5C11;&#x7684;&#x77E5;&#x8BC6;&#x548C;&#x914D;&#x7F6E;&#x505A;&#x5230;&#x5F00;&#x7BB1;&#x5373;&#x7528;&#x3002;&#x5B66;&#x4E60; Elasticsearch &#x7684;&#x6700;&#x597D;&#x65B9;&#x5F0F;&#x662F;&#x6295;&#x5165;&#x5B9E;&#x8DF5;&#xFF1A;&#x5C3D;&#x7BA1;&#x5F00;&#x59CB;&#x7D22;&#x5F15;&#x548C;&#x641C;&#x7D22;&#x5427;&#xFF01;</p>
<p>&#x7136;&#x800C;&#xFF0C;&#x5BF9;&#x4E8E; Elasticsearch &#x77E5;&#x9053;&#x5F97;&#x8D8A;&#x591A;&#xFF0C;&#x5C31;&#x8D8A;&#x6709;&#x751F;&#x4EA7;&#x6548;&#x7387;&#x3002;&#x544A;&#x8BC9; Elasticsearch &#x8D8A;&#x591A;&#x7684;&#x9886;&#x57DF;&#x77E5;&#x8BC6;&#xFF0C;&#x5C31;&#x8D8A;&#x5BB9;&#x6613;&#x8FDB;&#x884C;&#x7ED3;&#x679C;&#x8C03;&#x4F18;&#x3002;</p>
<p>&#x672C;&#x4E66;&#x7684;&#x540E;&#x7EED;&#x5185;&#x5BB9;&#x5C06;&#x5E2E;&#x52A9;&#x4F60;&#x4ECE;&#x65B0;&#x624B;&#x6210;&#x957F;&#x4E3A;&#x4E13;&#x5BB6;&#xFF0C;&#x6BCF;&#x4E2A;&#x7AE0;&#x8282;&#x4E0D;&#x4EC5;&#x9610;&#x8FF0;&#x5FC5;&#x8981;&#x7684;&#x57FA;&#x7840;&#x77E5;&#x8BC6;&#xFF0C;&#x800C;&#x4E14;&#x5305;&#x542B;&#x4E13;&#x5BB6;&#x5EFA;&#x8BAE;&#x3002;&#x5982;&#x679C;&#x521A;&#x521A;&#x4E0A;&#x624B;&#xFF0C;&#x8FD9;&#x4E9B;&#x5EFA;&#x8BAE;&#x53EF;&#x80FD;&#x65E0;&#x6CD5;&#x7ACB;&#x7AFF;&#x89C1;&#x5F71;&#xFF1B;&#x4F46; Elasticsearch &#x6709;&#x7740;&#x5408;&#x7406;&#x7684;&#x9ED8;&#x8BA4;&#x8BBE;&#x7F6E;&#xFF0C;&#x5728;&#x65E0;&#x9700;&#x5E72;&#x9884;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x901A;&#x5E38;&#x90FD;&#x80FD;&#x5DE5;&#x4F5C;&#x5F97;&#x5F88;&#x597D;&#x3002;&#x5F53;&#x8FFD;&#x6C42;&#x6BEB;&#x79D2;&#x7EA7;&#x7684;&#x6027;&#x80FD;&#x63D0;&#x5347;&#x65F6;&#xFF0C;&#x968F;&#x65F6;&#x53EF;&#x4EE5;&#x91CD;&#x6E29;&#x8FD9;&#x4E9B;&#x7AE0;&#x8282;&#x3002;</p>
<h2 id="&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;"><a name="&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;" class="anchor-navigation-ex-anchor" href="#&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x539F;&#x7406;</h2>
<hr>
<blockquote>
<p> <strong>&#x8865;&#x5145;&#x7AE0;&#x8282;</strong></p>
<p> &#x5982;&#x524D;&#x6587;&#x6240;&#x8FF0;&#xFF0C;&#x8FD9;&#x662F;&#x8865;&#x5145;&#x7AE0;&#x8282;&#x4E2D;&#x7B2C;&#x4E00;&#x7BC7;&#x4ECB;&#x7ECD; Elasticsearch &#x5728;&#x5206;&#x5E03;&#x5F0F;&#x73AF;&#x5883;&#x4E2D;&#x7684;&#x8FD0;&#x884C;&#x539F;&#x7406;&#x3002; &#x5728;&#x8FD9;&#x4E2A;&#x7AE0;&#x8282;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F1A;&#x4ECB;&#x7ECD; <em>cluster</em> &#x3001; <em>node</em> &#x3001; <em>shard</em> &#x7B49;&#x5E38;&#x7528;&#x672F;&#x8BED;&#xFF0C;Elastisearch &#x7684;&#x6269;&#x5BB9;&#x673A;&#x5236;&#xFF0C; &#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x5904;&#x7406;&#x786C;&#x4EF6;&#x6545;&#x969C;&#x7684;&#x5185;&#x5BB9;&#x3002;</p>
<p> &#x867D;&#x7136;&#x8FD9;&#x4E2A;&#x7AE0;&#x8282;&#x4E0D;&#x662F;&#x5FC5;&#x8BFB;&#x7684;--&#x60A8;&#x5B8C;&#x5168;&#x53EF;&#x4EE5;&#x5728;&#x4E0D;&#x5173;&#x6CE8;&#x5206;&#x7247;&#x3001;&#x526F;&#x672C;&#x548C;&#x5931;&#x6548;&#x5207;&#x6362;&#x7B49;&#x5185;&#x5BB9;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x957F;&#x671F;&#x4F7F;&#x7528;Elasticsearch-- &#x4F46;&#x662F;&#x8FD9;&#x5C06;&#x5E2E;&#x52A9;&#x4F60;&#x4E86;&#x89E3; Elasticsearch &#x7684;&#x5185;&#x90E8;&#x5DE5;&#x4F5C;&#x8FC7;&#x7A0B;&#x3002;&#x60A8;&#x53EF;&#x4EE5;&#x5148;&#x5FEB;&#x901F;&#x9605;&#x89C8;&#x8BE5;&#x7AE0;&#x8282;&#xFF0C;&#x5C06;&#x6765;&#x6709;&#x9700;&#x8981;&#x65F6;&#x518D;&#x6B21;&#x67E5;&#x770B;&#x3002;</p>
</blockquote>
<hr>
<p>ElasticSearch &#x7684;&#x4E3B;&#x65E8;&#x662F;&#x968F;&#x65F6;&#x53EF;&#x7528;&#x548C;&#x6309;&#x9700;&#x6269;&#x5BB9;&#x3002; &#x800C;&#x6269;&#x5BB9;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8D2D;&#x4E70;&#x6027;&#x80FD;&#x66F4;&#x5F3A;&#x5927;&#xFF08; <em>&#x5782;&#x76F4;&#x6269;&#x5BB9;</em> &#xFF0C;&#x6216; <em>&#x7EB5;&#x5411;&#x6269;&#x5BB9;</em>&#xFF09; &#x6216;&#x8005;&#x6570;&#x91CF;&#x66F4;&#x591A;&#x7684;&#x670D;&#x52A1;&#x5668;&#xFF08; <em>&#x6C34;&#x5E73;&#x6269;&#x5BB9;</em> &#xFF0C;&#x6216; <em>&#x6A2A;&#x5411;&#x6269;&#x5BB9;</em> &#xFF09;&#x6765;&#x5B9E;&#x73B0;&#x3002;</p>
<p>&#x867D;&#x7136; Elasticsearch &#x53EF;&#x4EE5;&#x83B7;&#x76CA;&#x4E8E;&#x66F4;&#x5F3A;&#x5927;&#x7684;&#x786C;&#x4EF6;&#x8BBE;&#x5907;&#xFF0C;&#x4F46;&#x662F;&#x5782;&#x76F4;&#x6269;&#x5BB9;&#x662F;&#x6709;&#x6781;&#x9650;&#x7684;&#x3002; &#x771F;&#x6B63;&#x7684;&#x6269;&#x5BB9;&#x80FD;&#x529B;&#x662F;&#x6765;&#x81EA;&#x4E8E;&#x6C34;&#x5E73;&#x6269;&#x5BB9;--&#x4E3A;&#x96C6;&#x7FA4;&#x6DFB;&#x52A0;&#x66F4;&#x591A;&#x7684;&#x8282;&#x70B9;&#xFF0C;&#x5E76;&#x4E14;&#x5C06;&#x8D1F;&#x8F7D;&#x538B;&#x529B;&#x548C;&#x7A33;&#x5B9A;&#x6027;&#x5206;&#x6563;&#x5230;&#x8FD9;&#x4E9B;&#x8282;&#x70B9;&#x4E2D;&#x3002;</p>
<p>&#x5BF9;&#x4E8E;&#x5927;&#x591A;&#x6570;&#x7684;&#x6570;&#x636E;&#x5E93;&#x800C;&#x8A00;&#xFF0C;&#x901A;&#x5E38;&#x9700;&#x8981;&#x5BF9;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x8FDB;&#x884C;&#x975E;&#x5E38;&#x5927;&#x7684;&#x6539;&#x52A8;&#xFF0C;&#x624D;&#x80FD;&#x5229;&#x7528;&#x4E0A;&#x6A2A;&#x5411;&#x6269;&#x5BB9;&#x7684;&#x65B0;&#x589E;&#x8D44;&#x6E90;&#x3002; &#x4E0E;&#x4E4B;&#x76F8;&#x53CD;&#x7684;&#x662F;&#xFF0C;ElastiSearch&#x5929;&#x751F;&#x5C31;&#x662F; <em>&#x5206;&#x5E03;&#x5F0F;&#x7684;</em> &#xFF0C;&#x5B83;&#x77E5;&#x9053;&#x5982;&#x4F55;&#x901A;&#x8FC7;&#x7BA1;&#x7406;&#x591A;&#x8282;&#x70B9;&#x6765;&#x63D0;&#x9AD8;&#x6269;&#x5BB9;&#x6027;&#x548C;&#x53EF;&#x7528;&#x6027;&#x3002; &#x8FD9;&#x4E5F;&#x610F;&#x5473;&#x7740;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x65E0;&#x9700;&#x5173;&#x6CE8;&#x8FD9;&#x4E2A;&#x95EE;&#x9898;&#x3002;</p>
<p>&#x672C;&#x7AE0;&#x5C06;&#x8BB2;&#x8FF0;&#x5982;&#x4F55;&#x6309;&#x9700;&#x914D;&#x7F6E;&#x96C6;&#x7FA4;&#x3001;&#x8282;&#x70B9;&#x548C;&#x5206;&#x7247;&#xFF0C;&#x5E76;&#x5728;&#x786C;&#x4EF6;&#x6545;&#x969C;&#x65F6;&#x786E;&#x4FDD;&#x6570;&#x636E;&#x5B89;&#x5168;&#x3002;</p>
<h3 id="&#x7A7A;&#x96C6;&#x7FA4;"><a name="&#x7A7A;&#x96C6;&#x7FA4;" class="anchor-navigation-ex-anchor" href="#&#x7A7A;&#x96C6;&#x7FA4;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7A7A;&#x96C6;&#x7FA4;</h3>
<p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x542F;&#x52A8;&#x4E86;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684;&#x8282;&#x70B9;&#xFF0C;&#x91CC;&#x9762;&#x4E0D;&#x5305;&#x542B;&#x4EFB;&#x4F55;&#x7684;&#x6570;&#x636E;&#x548C; &#x7D22;&#x5F15;&#xFF0C;&#x90A3;&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x770B;&#x8D77;&#x6765;&#x5C31;&#x662F;&#x4E00;&#x4E2A; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_an-empty-cluster.html#img-cluster" target="_blank">&#x56FE; 1 &#x201C;&#x5305;&#x542B;&#x7A7A;&#x5185;&#x5BB9;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x201D;</a>&#x3002;</p>
<p><strong>&#x56FE; 1. &#x5305;&#x542B;&#x7A7A;&#x5185;&#x5BB9;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;</strong></p>
<p><img src="assets/elas_0201.png" alt="&#x5305;&#x542B;&#x7A7A;&#x5185;&#x5BB9;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;"></p>
<p>&#x4E00;&#x4E2A;&#x8FD0;&#x884C;&#x4E2D;&#x7684; Elasticsearch &#x5B9E;&#x4F8B;&#x79F0;&#x4E3A;&#x4E00;&#x4E2A; &#x8282;&#x70B9;&#xFF0C;&#x800C;&#x96C6;&#x7FA4;&#x662F;&#x7531;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x62E5;&#x6709;&#x76F8;&#x540C; <code>cluster.name</code> &#x914D;&#x7F6E;&#x7684;&#x8282;&#x70B9;&#x7EC4;&#x6210;&#xFF0C; &#x5B83;&#x4EEC;&#x5171;&#x540C;&#x627F;&#x62C5;&#x6570;&#x636E;&#x548C;&#x8D1F;&#x8F7D;&#x7684;&#x538B;&#x529B;&#x3002;&#x5F53;&#x6709;&#x8282;&#x70B9;&#x52A0;&#x5165;&#x96C6;&#x7FA4;&#x4E2D;&#x6216;&#x8005;&#x4ECE;&#x96C6;&#x7FA4;&#x4E2D;&#x79FB;&#x9664;&#x8282;&#x70B9;&#x65F6;&#xFF0C;&#x96C6;&#x7FA4;&#x5C06;&#x4F1A;&#x91CD;&#x65B0;&#x5E73;&#x5747;&#x5206;&#x5E03;&#x6240;&#x6709;&#x7684;&#x6570;&#x636E;&#x3002;</p>
<p>&#x5F53;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x88AB;&#x9009;&#x4E3E;&#x6210;&#x4E3A; <em>&#x4E3B;</em> &#x8282;&#x70B9;&#x65F6;&#xFF0C; &#x5B83;&#x5C06;&#x8D1F;&#x8D23;&#x7BA1;&#x7406;&#x96C6;&#x7FA4;&#x8303;&#x56F4;&#x5185;&#x7684;&#x6240;&#x6709;&#x53D8;&#x66F4;&#xFF0C;&#x4F8B;&#x5982;&#x589E;&#x52A0;&#x3001;&#x5220;&#x9664;&#x7D22;&#x5F15;&#xFF0C;&#x6216;&#x8005;&#x589E;&#x52A0;&#x3001;&#x5220;&#x9664;&#x8282;&#x70B9;&#x7B49;&#x3002; &#x800C;&#x4E3B;&#x8282;&#x70B9;&#x5E76;&#x4E0D;&#x9700;&#x8981;&#x6D89;&#x53CA;&#x5230;&#x6587;&#x6863;&#x7EA7;&#x522B;&#x7684;&#x53D8;&#x66F4;&#x548C;&#x641C;&#x7D22;&#x7B49;&#x64CD;&#x4F5C;&#xFF0C;&#x6240;&#x4EE5;&#x5F53;&#x96C6;&#x7FA4;&#x53EA;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x4E3B;&#x8282;&#x70B9;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5373;&#x4F7F;&#x6D41;&#x91CF;&#x7684;&#x589E;&#x52A0;&#x5B83;&#x4E5F;&#x4E0D;&#x4F1A;&#x6210;&#x4E3A;&#x74F6;&#x9888;&#x3002; &#x4EFB;&#x4F55;&#x8282;&#x70B9;&#x90FD;&#x53EF;&#x4EE5;&#x6210;&#x4E3A;&#x4E3B;&#x8282;&#x70B9;&#x3002;&#x6211;&#x4EEC;&#x7684;&#x793A;&#x4F8B;&#x96C6;&#x7FA4;&#x5C31;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6240;&#x4EE5;&#x5B83;&#x540C;&#x65F6;&#x4E5F;&#x6210;&#x4E3A;&#x4E86;&#x4E3B;&#x8282;&#x70B9;&#x3002;</p>
<p>&#x4F5C;&#x4E3A;&#x7528;&#x6237;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06;&#x8BF7;&#x6C42;&#x53D1;&#x9001;&#x5230; <em>&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x4EFB;&#x4F55;&#x8282;&#x70B9;</em> &#xFF0C;&#x5305;&#x62EC;&#x4E3B;&#x8282;&#x70B9;&#x3002; &#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x90FD;&#x77E5;&#x9053;&#x4EFB;&#x610F;&#x6587;&#x6863;&#x6240;&#x5904;&#x7684;&#x4F4D;&#x7F6E;&#xFF0C;&#x5E76;&#x4E14;&#x80FD;&#x591F;&#x5C06;&#x6211;&#x4EEC;&#x7684;&#x8BF7;&#x6C42;&#x76F4;&#x63A5;&#x8F6C;&#x53D1;&#x5230;&#x5B58;&#x50A8;&#x6211;&#x4EEC;&#x6240;&#x9700;&#x6587;&#x6863;&#x7684;&#x8282;&#x70B9;&#x3002; &#x65E0;&#x8BBA;&#x6211;&#x4EEC;&#x5C06;&#x8BF7;&#x6C42;&#x53D1;&#x9001;&#x5230;&#x54EA;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x5B83;&#x90FD;&#x80FD;&#x8D1F;&#x8D23;&#x4ECE;&#x5404;&#x4E2A;&#x5305;&#x542B;&#x6211;&#x4EEC;&#x6240;&#x9700;&#x6587;&#x6863;&#x7684;&#x8282;&#x70B9;&#x6536;&#x96C6;&#x56DE;&#x6570;&#x636E;&#xFF0C;&#x5E76;&#x5C06;&#x6700;&#x7EC8;&#x7ED3;&#x679C;&#x8FD4;&#x56DE;&#x7D66;&#x5BA2;&#x6237;&#x7AEF;&#x3002; Elasticsearch &#x5BF9;&#x8FD9;&#x4E00;&#x5207;&#x7684;&#x7BA1;&#x7406;&#x90FD;&#x662F;&#x900F;&#x660E;&#x7684;&#x3002;</p>
<h3 id="&#x96C6;&#x7FA4;&#x5065;&#x5EB7;"><a name="&#x96C6;&#x7FA4;&#x5065;&#x5EB7;" class="anchor-navigation-ex-anchor" href="#&#x96C6;&#x7FA4;&#x5065;&#x5EB7;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x96C6;&#x7FA4;&#x5065;&#x5EB7;</h3>
<p>Elasticsearch &#x7684;&#x96C6;&#x7FA4;&#x76D1;&#x63A7;&#x4FE1;&#x606F;&#x4E2D;&#x5305;&#x542B;&#x4E86;&#x8BB8;&#x591A;&#x7684;&#x7EDF;&#x8BA1;&#x6570;&#x636E;&#xFF0C;&#x5176;&#x4E2D;&#x6700;&#x4E3A;&#x91CD;&#x8981;&#x7684;&#x4E00;&#x9879;&#x5C31;&#x662F; <em>&#x96C6;&#x7FA4;&#x5065;&#x5EB7;</em> &#xFF0C; &#x5B83;&#x5728; <code>status</code> &#x5B57;&#x6BB5;&#x4E2D;&#x5C55;&#x793A;&#x4E3A; <code>green</code> &#x3001; <code>yellow</code> &#x6216;&#x8005; <code>red</code> &#x3002;</p>
<pre><code class="lang-js">GET /_cluster/health
</code></pre>
<p>&#x5728;&#x4E00;&#x4E2A;&#x4E0D;&#x5305;&#x542B;&#x4EFB;&#x4F55;&#x7D22;&#x5F15;&#x7684;&#x7A7A;&#x96C6;&#x7FA4;&#x4E2D;&#xFF0C;&#x5B83;&#x5C06;&#x4F1A;&#x6709;&#x4E00;&#x4E2A;&#x7C7B;&#x4F3C;&#x4E8E;&#x5982;&#x4E0B;&#x6240;&#x793A;&#x7684;&#x8FD4;&#x56DE;&#x5185;&#x5BB9;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;cluster_name&quot;</span>:          <span class="hljs-string">&quot;elasticsearch&quot;</span>,
   <span class="hljs-string">&quot;status&quot;</span>:                <span class="hljs-string">&quot;green&quot;</span>,                   <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
   &quot;timed_out&quot;:             false,
   &quot;number_of_nodes&quot;:       1,
   &quot;number_of_data_nodes&quot;:  1,
   &quot;active_primary_shards&quot;: 0,
   &quot;active_shards&quot;:         0,
   &quot;relocating_shards&quot;:     0,
   &quot;initializing_shards&quot;:   0,
   &quot;unassigned_shards&quot;:     0
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  <code>status</code> &#x5B57;&#x6BB5;&#x662F;&#x6211;&#x4EEC;&#x6700;&#x5173;&#x5FC3;&#x7684;&#x3002;   </p>
</blockquote>
<p><code>status</code> &#x5B57;&#x6BB5;&#x6307;&#x793A;&#x7740;&#x5F53;&#x524D;&#x96C6;&#x7FA4;&#x5728;&#x603B;&#x4F53;&#x4E0A;&#x662F;&#x5426;&#x5DE5;&#x4F5C;&#x6B63;&#x5E38;&#x3002;&#x5B83;&#x7684;&#x4E09;&#x79CD;&#x989C;&#x8272;&#x542B;&#x4E49;&#x5982;&#x4E0B;&#xFF1A;</p>
<ul>
<li><p><code>green</code></p>
<p>&#x6240;&#x6709;&#x7684;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x526F;&#x672C;&#x5206;&#x7247;&#x90FD;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x3002;</p>
</li>
<li><p><code>yellow</code></p>
<p>&#x6240;&#x6709;&#x7684;&#x4E3B;&#x5206;&#x7247;&#x90FD;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#xFF0C;&#x4F46;&#x4E0D;&#x662F;&#x6240;&#x6709;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x90FD;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x3002;</p>
</li>
<li><p><code>red</code></p>
<p>&#x6709;&#x4E3B;&#x5206;&#x7247;&#x6CA1;&#x80FD;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x3002;</p>
</li>
</ul>
<p>&#x5728;&#x672C;&#x7AE0;&#x8282;&#x5269;&#x4F59;&#x7684;&#x90E8;&#x5206;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x89E3;&#x91CA;&#x4EC0;&#x4E48;&#x662F; <em>&#x4E3B;</em> &#x5206;&#x7247;&#x548C; <em>&#x526F;&#x672C;</em> &#x5206;&#x7247;&#xFF0C;&#x4EE5;&#x53CA;&#x4E0A;&#x9762;&#x63D0;&#x5230;&#x7684;&#x8FD9;&#x4E9B;&#x989C;&#x8272;&#x7684;&#x5B9E;&#x9645;&#x610F;&#x4E49;&#x3002;</p>
<h3 id="&#x6DFB;&#x52A0;&#x7D22;&#x5F15;"><a name="&#x6DFB;&#x52A0;&#x7D22;&#x5F15;" class="anchor-navigation-ex-anchor" href="#&#x6DFB;&#x52A0;&#x7D22;&#x5F15;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6DFB;&#x52A0;&#x7D22;&#x5F15;</h3>
<p>&#x6211;&#x4EEC;&#x5F80; Elasticsearch &#x6DFB;&#x52A0;&#x6570;&#x636E;&#x65F6;&#x9700;&#x8981;&#x7528;&#x5230; <em>&#x7D22;&#x5F15;</em> &#x2014;&#x2014; &#x4FDD;&#x5B58;&#x76F8;&#x5173;&#x6570;&#x636E;&#x7684;&#x5730;&#x65B9;&#x3002; &#x7D22;&#x5F15;&#x5B9E;&#x9645;&#x4E0A;&#x662F;&#x6307;&#x5411;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x7269;&#x7406; <em>&#x5206;&#x7247;</em> &#x7684; <em>&#x903B;&#x8F91;&#x547D;&#x540D;&#x7A7A;&#x95F4;</em> &#x3002;</p>
<p>&#x4E00;&#x4E2A; <em>&#x5206;&#x7247;</em> &#x662F;&#x4E00;&#x4E2A;&#x5E95;&#x5C42;&#x7684; <em>&#x5DE5;&#x4F5C;&#x5355;&#x5143;</em> &#xFF0C;&#x5B83;&#x4EC5;&#x4FDD;&#x5B58;&#x4E86; &#x5168;&#x90E8;&#x6570;&#x636E;&#x4E2D;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x3002; &#x5728;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/inside-a-shard.html" target="_blank"><code>&#x5206;&#x7247;&#x5185;&#x90E8;&#x673A;&#x5236;</code></a>&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x8BE6;&#x7EC6;&#x4ECB;&#x7ECD;&#x5206;&#x7247;&#x662F;&#x5982;&#x4F55;&#x5DE5;&#x4F5C;&#x7684;&#xFF0C;&#x800C;&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x77E5;&#x9053;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x662F;&#x4E00;&#x4E2A; Lucene &#x7684;&#x5B9E;&#x4F8B;&#xFF0C;&#x4EE5;&#x53CA;&#x5B83;&#x672C;&#x8EAB;&#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x3002; &#x6211;&#x4EEC;&#x7684;&#x6587;&#x6863;&#x88AB;&#x5B58;&#x50A8;&#x548C;&#x7D22;&#x5F15;&#x5230;&#x5206;&#x7247;&#x5185;&#xFF0C;&#x4F46;&#x662F;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x662F;&#x76F4;&#x63A5;&#x4E0E;&#x7D22;&#x5F15;&#x800C;&#x4E0D;&#x662F;&#x4E0E;&#x5206;&#x7247;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#x3002;</p>
<p>Elasticsearch &#x662F;&#x5229;&#x7528;&#x5206;&#x7247;&#x5C06;&#x6570;&#x636E;&#x5206;&#x53D1;&#x5230;&#x96C6;&#x7FA4;&#x5185;&#x5404;&#x5904;&#x7684;&#x3002;&#x5206;&#x7247;&#x662F;&#x6570;&#x636E;&#x7684;&#x5BB9;&#x5668;&#xFF0C;&#x6587;&#x6863;&#x4FDD;&#x5B58;&#x5728;&#x5206;&#x7247;&#x5185;&#xFF0C;&#x5206;&#x7247;&#x53C8;&#x88AB;&#x5206;&#x914D;&#x5230;&#x96C6;&#x7FA4;&#x5185;&#x7684;&#x5404;&#x4E2A;&#x8282;&#x70B9;&#x91CC;&#x3002; &#x5F53;&#x4F60;&#x7684;&#x96C6;&#x7FA4;&#x89C4;&#x6A21;&#x6269;&#x5927;&#x6216;&#x8005;&#x7F29;&#x5C0F;&#x65F6;&#xFF0C; Elasticsearch &#x4F1A;&#x81EA;&#x52A8;&#x7684;&#x5728;&#x5404;&#x8282;&#x70B9;&#x4E2D;&#x8FC1;&#x79FB;&#x5206;&#x7247;&#xFF0C;&#x4F7F;&#x5F97;&#x6570;&#x636E;&#x4ECD;&#x7136;&#x5747;&#x5300;&#x5206;&#x5E03;&#x5728;&#x96C6;&#x7FA4;&#x91CC;&#x3002;</p>
<p>&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x53EF;&#x4EE5;&#x662F; <em>&#x4E3B;</em> &#x5206;&#x7247;&#x6216;&#x8005; <em>&#x526F;&#x672C;</em> &#x5206;&#x7247;&#x3002; &#x7D22;&#x5F15;&#x5185;&#x4EFB;&#x610F;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x5F52;&#x5C5E;&#x4E8E;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#xFF0C;&#x6240;&#x4EE5;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x6570;&#x76EE;&#x51B3;&#x5B9A;&#x7740;&#x7D22;&#x5F15;&#x80FD;&#x591F;&#x4FDD;&#x5B58;&#x7684;&#x6700;&#x5927;&#x6570;&#x636E;&#x91CF;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x6280;&#x672F;&#x4E0A;&#x6765;&#x8BF4;&#xFF0C;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x6700;&#x5927;&#x80FD;&#x591F;&#x5B58;&#x50A8; Integer.MAX_VALUE - 128 &#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x4F46;&#x662F;&#x5B9E;&#x9645;&#x6700;&#x5927;&#x503C;&#x8FD8;&#x9700;&#x8981;&#x53C2;&#x8003;&#x4F60;&#x7684;&#x4F7F;&#x7528;&#x573A;&#x666F;&#xFF1A;&#x5305;&#x62EC;&#x4F60;&#x4F7F;&#x7528;&#x7684;&#x786C;&#x4EF6;&#xFF0C; &#x6587;&#x6863;&#x7684;&#x5927;&#x5C0F;&#x548C;&#x590D;&#x6742;&#x7A0B;&#x5EA6;&#xFF0C;&#x7D22;&#x5F15;&#x548C;&#x67E5;&#x8BE2;&#x6587;&#x6863;&#x7684;&#x65B9;&#x5F0F;&#x4EE5;&#x53CA;&#x4F60;&#x671F;&#x671B;&#x7684;&#x54CD;&#x5E94;&#x65F6;&#x957F;&#x3002;</p>
</blockquote>
<p>&#x4E00;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x62F7;&#x8D1D;&#x3002; &#x526F;&#x672C;&#x5206;&#x7247;&#x4F5C;&#x4E3A;&#x786C;&#x4EF6;&#x6545;&#x969C;&#x65F6;&#x4FDD;&#x62A4;&#x6570;&#x636E;&#x4E0D;&#x4E22;&#x5931;&#x7684;&#x5197;&#x4F59;&#x5907;&#x4EFD;&#xFF0C;&#x5E76;&#x4E3A;&#x641C;&#x7D22;&#x548C;&#x8FD4;&#x56DE;&#x6587;&#x6863;&#x7B49;&#x8BFB;&#x64CD;&#x4F5C;&#x63D0;&#x4F9B;&#x670D;&#x52A1;&#x3002;</p>
<p>&#x5728;&#x7D22;&#x5F15;&#x5EFA;&#x7ACB;&#x7684;&#x65F6;&#x5019;&#x5C31;&#x5DF2;&#x7ECF;&#x786E;&#x5B9A;&#x4E86;&#x4E3B;&#x5206;&#x7247;&#x6570;&#xFF0C;&#x4F46;&#x662F;&#x526F;&#x672C;&#x5206;&#x7247;&#x6570;&#x53EF;&#x4EE5;&#x968F;&#x65F6;&#x4FEE;&#x6539;&#x3002;</p>
<p>&#x8BA9;&#x6211;&#x4EEC;&#x5728;&#x5305;&#x542B;&#x4E00;&#x4E2A;&#x7A7A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x5185;&#x521B;&#x5EFA;&#x540D;&#x4E3A; <code>blogs</code> &#x7684;&#x7D22;&#x5F15;&#x3002; &#x7D22;&#x5F15;&#x5728;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#x4F1A;&#x88AB;&#x5206;&#x914D;5&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#xFF0C; &#x4F46;&#x662F;&#x4E3A;&#x4E86;&#x6F14;&#x793A;&#x76EE;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5206;&#x914D;3&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#xFF08;&#x6BCF;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-js">PUT /blogs
{
   <span class="hljs-string">&quot;settings&quot;</span> : {
      <span class="hljs-string">&quot;number_of_shards&quot;</span> : <span class="hljs-number">3</span>,
      <span class="hljs-string">&quot;number_of_replicas&quot;</span> : <span class="hljs-number">1</span>
   }
}
</code></pre>
<p>&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x73B0;&#x5728;&#x662F;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_add-an-index.html#cluster-one-node" target="_blank">&#x56FE; 2 &#x201C;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x5355;&#x8282;&#x70B9;&#x96C6;&#x7FA4;&#x201D;</a>&#x3002;&#x6240;&#x6709;3&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x90FD;&#x88AB;&#x5206;&#x914D;&#x5728; <code>Node 1</code> &#x3002;</p>
<p><strong>&#x56FE; 2. &#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x5355;&#x8282;&#x70B9;&#x96C6;&#x7FA4;</strong></p>
<p><img src="assets/elas_0202.png" alt="&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x7684;&#x5355;&#x8282;&#x70B9;&#x96C6;&#x7FA4;"></p>
<p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x73B0;&#x5728;&#x67E5;&#x770B;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/cluster-health.html" target="_blank"><code>&#x96C6;&#x7FA4;&#x5065;&#x5EB7;</code></a>&#xFF0C; &#x6211;&#x4EEC;&#x5C06;&#x770B;&#x5230;&#x5982;&#x4E0B;&#x5185;&#x5BB9;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;cluster_name&quot;</span>: <span class="hljs-string">&quot;elasticsearch&quot;</span>,
  <span class="hljs-string">&quot;status&quot;</span>: <span class="hljs-string">&quot;yellow&quot;</span>,                                 &lt;1&gt;
  &quot;timed_out&quot;: false,
  &quot;number_of_nodes&quot;: 1,
  &quot;number_of_data_nodes&quot;: 1,
  &quot;active_primary_shards&quot;: 3,
  &quot;active_shards&quot;: 3,                                 &lt;2&gt;
  &quot;relocating_shards&quot;: 0,
  &quot;initializing_shards&quot;: 0,
  &quot;unassigned_shards&quot;: 3, 
  &quot;delayed_unassigned_shards&quot;: 0,
  &quot;number_of_pending_tasks&quot;: 0,
  &quot;number_of_in_flight_fetch&quot;: 0,
  &quot;task_max_waiting_in_queue_millis&quot;: 0,
  &quot;active_shards_percent_as_number&quot;: 50
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x96C6;&#x7FA4; <code>status</code> &#x503C;&#x4E3A; <code>yellow</code> &#x3002;   </p>
<p> <img src="assets/2.png" alt="img">  &#x6CA1;&#x6709;&#x88AB;&#x5206;&#x914D;&#x5230;&#x4EFB;&#x4F55;&#x8282;&#x70B9;&#x7684;&#x526F;&#x672C;&#x6570;&#x3002;   </p>
</blockquote>
<p>&#x96C6;&#x7FA4;&#x7684;&#x5065;&#x5EB7;&#x72B6;&#x51B5;&#x4E3A; <code>yellow</code> &#x5219;&#x8868;&#x793A;&#x5168;&#x90E8; <em>&#x4E3B;</em> &#x5206;&#x7247;&#x90FD;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#xFF08;&#x96C6;&#x7FA4;&#x53EF;&#x4EE5;&#x6B63;&#x5E38;&#x670D;&#x52A1;&#x6240;&#x6709;&#x8BF7;&#x6C42;&#xFF09;&#xFF0C;&#x4F46;&#x662F; <em>&#x526F;&#x672C;</em> &#x5206;&#x7247;&#x6CA1;&#x6709;&#x5168;&#x90E8;&#x5904;&#x5728;&#x6B63;&#x5E38;&#x72B6;&#x6001;&#x3002; &#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x6240;&#x6709;3&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x90FD;&#x662F; <code>unassigned</code> &#x2014;&#x2014; &#x5B83;&#x4EEC;&#x90FD;&#x6CA1;&#x6709;&#x88AB;&#x5206;&#x914D;&#x5230;&#x4EFB;&#x4F55;&#x8282;&#x70B9;&#x3002; &#x5728;&#x540C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x65E2;&#x4FDD;&#x5B58;&#x539F;&#x59CB;&#x6570;&#x636E;&#x53C8;&#x4FDD;&#x5B58;&#x526F;&#x672C;&#x662F;&#x6CA1;&#x6709;&#x610F;&#x4E49;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x4E00;&#x65E6;&#x5931;&#x53BB;&#x4E86;&#x90A3;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x5C06;&#x4E22;&#x5931;&#x8BE5;&#x8282;&#x70B9;&#x4E0A;&#x7684;&#x6240;&#x6709;&#x526F;&#x672C;&#x6570;&#x636E;&#x3002;</p>
<p>&#x5F53;&#x524D;&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x662F;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5728;&#x786C;&#x4EF6;&#x6545;&#x969C;&#x65F6;&#x6709;&#x4E22;&#x5931;&#x6570;&#x636E;&#x7684;&#x98CE;&#x9669;&#x3002;</p>
<h3 id="&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;"><a name="&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;" class="anchor-navigation-ex-anchor" href="#&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6DFB;&#x52A0;&#x6545;&#x969C;&#x8F6C;&#x79FB;</h3>
<p>&#x5F53;&#x96C6;&#x7FA4;&#x4E2D;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x5728;&#x8FD0;&#x884C;&#x65F6;&#xFF0C;&#x610F;&#x5473;&#x7740;&#x4F1A;&#x6709;&#x4E00;&#x4E2A;&#x5355;&#x70B9;&#x6545;&#x969C;&#x95EE;&#x9898;&#x2014;&#x2014;&#x6CA1;&#x6709;&#x5197;&#x4F59;&#x3002; &#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x9700;&#x518D;&#x542F;&#x52A8;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x5373;&#x53EF;&#x9632;&#x6B62;&#x6570;&#x636E;&#x4E22;&#x5931;&#x3002;</p>
<hr>
<blockquote>
<p> <strong>&#x542F;&#x52A8;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;</strong></p>
<p> &#x4E3A;&#x4E86;&#x6D4B;&#x8BD5;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x542F;&#x52A8;&#x540E;&#x7684;&#x60C5;&#x51B5;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;&#x5185;&#xFF0C;&#x5B8C;&#x5168;&#x4F9D;&#x7167;&#x542F;&#x52A8;&#x7B2C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x65B9;&#x5F0F;&#x6765;&#x542F;&#x52A8;&#x4E00;&#x4E2A;&#x65B0;&#x8282;&#x70B9;&#xFF08;&#x53C2;&#x8003;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/running-elasticsearch.html" target="_blank">&#x5B89;&#x88C5;&#x5E76;&#x8FD0;&#x884C; Elasticsearch</a>&#xFF09;&#x3002;&#x591A;&#x4E2A;&#x8282;&#x70B9;&#x53EF;&#x4EE5;&#x5171;&#x4EAB;&#x540C;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;&#x3002;</p>
<p> &#x5F53;&#x4F60;&#x5728;&#x540C;&#x4E00;&#x53F0;&#x673A;&#x5668;&#x4E0A;&#x542F;&#x52A8;&#x4E86;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x65F6;&#xFF0C;&#x53EA;&#x8981;&#x5B83;&#x548C;&#x7B2C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x6709;&#x540C;&#x6837;&#x7684; <code>cluster.name</code> &#x914D;&#x7F6E;&#xFF0C;&#x5B83;&#x5C31;&#x4F1A;&#x81EA;&#x52A8;&#x53D1;&#x73B0;&#x96C6;&#x7FA4;&#x5E76;&#x52A0;&#x5165;&#x5230;&#x5176;&#x4E2D;&#x3002; &#x4F46;&#x662F;&#x5728;&#x4E0D;&#x540C;&#x673A;&#x5668;&#x4E0A;&#x542F;&#x52A8;&#x8282;&#x70B9;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4E3A;&#x4E86;&#x52A0;&#x5165;&#x5230;&#x540C;&#x4E00;&#x96C6;&#x7FA4;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x914D;&#x7F6E;&#x4E00;&#x4E2A;&#x53EF;&#x8FDE;&#x63A5;&#x5230;&#x7684;&#x5355;&#x64AD;&#x4E3B;&#x673A;&#x5217;&#x8868;&#x3002; &#x8BE6;&#x7EC6;&#x4FE1;&#x606F;&#x8BF7;&#x67E5;&#x770B;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configuration-changes.html#unicast" target="_blank">&#x6700;&#x597D;&#x4F7F;&#x7528;&#x5355;&#x64AD;&#x4EE3;&#x66FF;&#x7EC4;&#x64AD;</a></p>
</blockquote>
<hr>
<p>&#x5982;&#x679C;&#x542F;&#x52A8;&#x4E86;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x5C06;&#x4F1A;&#x5982;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_add_failover.html#cluster-two-nodes" target="_blank">&#x56FE; 3 &#x201C;&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x2014;&#x2014;&#x6240;&#x6709;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x526F;&#x672C;&#x5206;&#x7247;&#x90FD;&#x5DF2;&#x88AB;&#x5206;&#x914D;&#x201D;</a>&#x6240;&#x793A;&#x3002;</p>
<p><strong>&#x56FE; 3. &#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x2014;&#x2014;&#x6240;&#x6709;&#x4E3B;&#x5206;&#x7247;&#x548C;&#x526F;&#x672C;&#x5206;&#x7247;&#x90FD;&#x5DF2;&#x88AB;&#x5206;&#x914D;</strong></p>
<p><img src="assets/elas_0203.png" alt="&#x62E5;&#x6709;&#x4E24;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;"></p>
<p>&#x5F53;&#x7B2C;&#x4E8C;&#x4E2A;&#x8282;&#x70B9;&#x52A0;&#x5165;&#x5230;&#x96C6;&#x7FA4;&#x540E;&#xFF0C;3&#x4E2A; <em>&#x526F;&#x672C;&#x5206;&#x7247;</em> &#x5C06;&#x4F1A;&#x5206;&#x914D;&#x5230;&#x8FD9;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x2014;&#x2014;&#x6BCF;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x5BF9;&#x5E94;&#x4E00;&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x8FD9;&#x610F;&#x5473;&#x7740;&#x5F53;&#x96C6;&#x7FA4;&#x5185;&#x4EFB;&#x4F55;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x51FA;&#x73B0;&#x95EE;&#x9898;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x6570;&#x636E;&#x90FD;&#x5B8C;&#x597D;&#x65E0;&#x635F;&#x3002;</p>
<p>&#x6240;&#x6709;&#x65B0;&#x8FD1;&#x88AB;&#x7D22;&#x5F15;&#x7684;&#x6587;&#x6863;&#x90FD;&#x5C06;&#x4F1A;&#x4FDD;&#x5B58;&#x5728;&#x4E3B;&#x5206;&#x7247;&#x4E0A;&#xFF0C;&#x7136;&#x540E;&#x88AB;&#x5E76;&#x884C;&#x7684;&#x590D;&#x5236;&#x5230;&#x5BF9;&#x5E94;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x4E0A;&#x3002;&#x8FD9;&#x5C31;&#x4FDD;&#x8BC1;&#x4E86;&#x6211;&#x4EEC;&#x65E2;&#x53EF;&#x4EE5;&#x4ECE;&#x4E3B;&#x5206;&#x7247;&#x53C8;&#x53EF;&#x4EE5;&#x4ECE;&#x526F;&#x672C;&#x5206;&#x7247;&#x4E0A;&#x83B7;&#x5F97;&#x6587;&#x6863;&#x3002;</p>
<p><code>cluster-health</code> &#x73B0;&#x5728;&#x5C55;&#x793A;&#x7684;&#x72B6;&#x6001;&#x4E3A; <code>green</code> &#xFF0C;&#x8FD9;&#x8868;&#x793A;&#x6240;&#x6709;6&#x4E2A;&#x5206;&#x7247;&#xFF08;&#x5305;&#x62EC;3&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x548C;3&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF09;&#x90FD;&#x5728;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x3002;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;cluster_name&quot;</span>: <span class="hljs-string">&quot;elasticsearch&quot;</span>,
  <span class="hljs-string">&quot;status&quot;</span>: <span class="hljs-string">&quot;green&quot;</span>,                             <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
  &quot;timed_out&quot;: false,
  &quot;number_of_nodes&quot;: 2,
  &quot;number_of_data_nodes&quot;: 2,
  &quot;active_primary_shards&quot;: 3,
  &quot;active_shards&quot;: 6,
  &quot;relocating_shards&quot;: 0,
  &quot;initializing_shards&quot;: 0,
  &quot;unassigned_shards&quot;: 0,
  &quot;delayed_unassigned_shards&quot;: 0,
  &quot;number_of_pending_tasks&quot;: 0,
  &quot;number_of_in_flight_fetch&quot;: 0,
  &quot;task_max_waiting_in_queue_millis&quot;: 0,
  &quot;active_shards_percent_as_number&quot;: 100
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x96C6;&#x7FA4; <code>status</code> &#x503C;&#x4E3A; <code>green</code> &#x3002;   </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x73B0;&#x5728;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x6B63;&#x5E38;&#x8FD0;&#x884C;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x8FD8;&#x5904;&#x4E8E; <em>&#x59CB;&#x7EC8;&#x53EF;&#x7528;</em> &#x7684;&#x72B6;&#x6001;&#x3002;</p>
<h3 id="&#x6C34;&#x5E73;&#x6269;&#x5BB9;"><a name="&#x6C34;&#x5E73;&#x6269;&#x5BB9;" class="anchor-navigation-ex-anchor" href="#&#x6C34;&#x5E73;&#x6269;&#x5BB9;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6C34;&#x5E73;&#x6269;&#x5BB9;</h3>
<p>&#x600E;&#x6837;&#x4E3A;&#x6211;&#x4EEC;&#x7684;&#x6B63;&#x5728;&#x589E;&#x957F;&#x4E2D;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6309;&#x9700;&#x6269;&#x5BB9;&#x5462;&#xFF1F; &#x5F53;&#x542F;&#x52A8;&#x4E86;&#x7B2C;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x96C6;&#x7FA4;&#x5C06;&#x4F1A;&#x770B;&#x8D77;&#x6765;&#x5982;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_scale_horizontally.html#cluster-three-nodes" target="_blank">&#x56FE; 4 &#x201C;&#x62E5;&#x6709;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x2014;&#x2014;&#x4E3A;&#x4E86;&#x5206;&#x6563;&#x8D1F;&#x8F7D;&#x800C;&#x5BF9;&#x5206;&#x7247;&#x8FDB;&#x884C;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x201D;</a>&#x6240;&#x793A;&#x3002;</p>
<p><strong>&#x56FE; 4. &#x62E5;&#x6709;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;&#x2014;&#x2014;&#x4E3A;&#x4E86;&#x5206;&#x6563;&#x8D1F;&#x8F7D;&#x800C;&#x5BF9;&#x5206;&#x7247;&#x8FDB;&#x884C;&#x91CD;&#x65B0;&#x5206;&#x914D;</strong></p>
<p><img src="assets/elas_0204.png" alt="&#x62E5;&#x6709;&#x4E09;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;"></p>
<p><code>Node 1</code> &#x548C; <code>Node 2</code> &#x4E0A;&#x5404;&#x6709;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x88AB;&#x8FC1;&#x79FB;&#x5230;&#x4E86;&#x65B0;&#x7684; <code>Node 3</code> &#x8282;&#x70B9;&#xFF0C;&#x73B0;&#x5728;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x90FD;&#x62E5;&#x6709;2&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4E4B;&#x524D;&#x7684;3&#x4E2A;&#x3002; &#x8FD9;&#x8868;&#x793A;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x786C;&#x4EF6;&#x8D44;&#x6E90;&#xFF08;CPU, RAM, I/O&#xFF09;&#x5C06;&#x88AB;&#x66F4;&#x5C11;&#x7684;&#x5206;&#x7247;&#x6240;&#x5171;&#x4EAB;&#xFF0C;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x7684;&#x6027;&#x80FD;&#x5C06;&#x4F1A;&#x5F97;&#x5230;&#x63D0;&#x5347;&#x3002;</p>
<p>&#x5206;&#x7247;&#x662F;&#x4E00;&#x4E2A;&#x529F;&#x80FD;&#x5B8C;&#x6574;&#x7684;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#xFF0C;&#x5B83;&#x62E5;&#x6709;&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x7684;&#x6240;&#x6709;&#x8D44;&#x6E90;&#x7684;&#x80FD;&#x529B;&#x3002; &#x6211;&#x4EEC;&#x8FD9;&#x4E2A;&#x62E5;&#x6709;6&#x4E2A;&#x5206;&#x7247;&#xFF08;3&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x548C;3&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF09;&#x7684;&#x7D22;&#x5F15;&#x53EF;&#x4EE5;&#x6700;&#x5927;&#x6269;&#x5BB9;&#x5230;6&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x5B58;&#x5728;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#xFF0C;&#x5E76;&#x4E14;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x62E5;&#x6709;&#x6240;&#x5728;&#x8282;&#x70B9;&#x7684;&#x5168;&#x90E8;&#x8D44;&#x6E90;&#x3002;</p>
<p><strong>&#x66F4;&#x591A;&#x7684;&#x6269;&#x5BB9;</strong></p>
<p>&#x4F46;&#x662F;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x6269;&#x5BB9;&#x8D85;&#x8FC7;6&#x4E2A;&#x8282;&#x70B9;&#x600E;&#x4E48;&#x529E;&#x5462;&#xFF1F;</p>
<p>&#x4E3B;&#x5206;&#x7247;&#x7684;&#x6570;&#x76EE;&#x5728;&#x7D22;&#x5F15;&#x521B;&#x5EFA;&#x65F6; &#x5C31;&#x5DF2;&#x7ECF;&#x786E;&#x5B9A;&#x4E86;&#x4E0B;&#x6765;&#x3002;&#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x8FD9;&#x4E2A;&#x6570;&#x76EE;&#x5B9A;&#x4E49;&#x4E86;&#x8FD9;&#x4E2A;&#x7D22;&#x5F15;&#x80FD;&#x591F; <em>&#x5B58;&#x50A8;</em> &#x7684;&#x6700;&#x5927;&#x6570;&#x636E;&#x91CF;&#x3002;&#xFF08;&#x5B9E;&#x9645;&#x5927;&#x5C0F;&#x53D6;&#x51B3;&#x4E8E;&#x4F60;&#x7684;&#x6570;&#x636E;&#x3001;&#x786C;&#x4EF6;&#x548C;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x3002;&#xFF09; &#x4F46;&#x662F;&#xFF0C;&#x8BFB;&#x64CD;&#x4F5C;&#x2014;&#x2014;&#x641C;&#x7D22;&#x548C;&#x8FD4;&#x56DE;&#x6570;&#x636E;&#x2014;&#x2014;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x88AB;&#x4E3B;&#x5206;&#x7247; <em>&#x6216;</em> &#x526F;&#x672C;&#x5206;&#x7247;&#x6240;&#x5904;&#x7406;&#xFF0C;&#x6240;&#x4EE5;&#x5F53;&#x4F60;&#x62E5;&#x6709;&#x8D8A;&#x591A;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x65F6;&#xFF0C;&#x4E5F;&#x5C06;&#x62E5;&#x6709;&#x8D8A;&#x9AD8;&#x7684;&#x541E;&#x5410;&#x91CF;&#x3002;</p>
<p>&#x5728;&#x8FD0;&#x884C;&#x4E2D;&#x7684;&#x96C6;&#x7FA4;&#x4E0A;&#x662F;&#x53EF;&#x4EE5;&#x52A8;&#x6001;&#x8C03;&#x6574;&#x526F;&#x672C;&#x5206;&#x7247;&#x6570;&#x76EE;&#x7684; &#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x6309;&#x9700;&#x4F38;&#x7F29;&#x96C6;&#x7FA4;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x628A;&#x526F;&#x672C;&#x6570;&#x4ECE;&#x9ED8;&#x8BA4;&#x7684; <code>1</code>&#x589E;&#x52A0;&#x5230; <code>2</code> &#xFF1A;</p>
<pre><code class="lang-js">PUT /blogs/_settings
{
   <span class="hljs-string">&quot;number_of_replicas&quot;</span> : <span class="hljs-number">2</span>
}
</code></pre>
<p>&#x5982;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_scale_horizontally.html#cluster-three-nodes-two-replicas" target="_blank">&#x56FE; 5 &#x201C;&#x5C06;&#x53C2;&#x6570; <code>number_of_replicas</code> &#x8C03;&#x5927;&#x5230; 2&#x201D;</a>&#x6240;&#x793A;&#xFF0C; <code>blogs</code> &#x7D22;&#x5F15;&#x73B0;&#x5728;&#x62E5;&#x6709;9&#x4E2A;&#x5206;&#x7247;&#xFF1A;3&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x548C;6&#x4E2A;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x8FD9;&#x610F;&#x5473;&#x7740;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06;&#x96C6;&#x7FA4;&#x6269;&#x5BB9;&#x5230;9&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x4E0A;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x3002;&#x76F8;&#x6BD4;&#x539F;&#x6765;3&#x4E2A;&#x8282;&#x70B9;&#x65F6;&#xFF0C;&#x96C6;&#x7FA4;&#x641C;&#x7D22;&#x6027;&#x80FD;&#x53EF;&#x4EE5;&#x63D0;&#x5347; <em>3</em> &#x500D;&#x3002;</p>
<p><strong>&#x56FE; 5. &#x5C06;&#x53C2;&#x6570; number_of_replicas &#x8C03;&#x5927;&#x5230; 2</strong></p>
<p><img src="assets/elas_0205.png" alt="&#x62E5;&#x6709;2&#x4EFD;&#x526F;&#x672C;&#x5206;&#x7247;3&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x96C6;&#x7FA4;"></p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x5F53;&#x7136;&#xFF0C;&#x5982;&#x679C;&#x53EA;&#x662F;&#x5728;&#x76F8;&#x540C;&#x8282;&#x70B9;&#x6570;&#x76EE;&#x7684;&#x96C6;&#x7FA4;&#x4E0A;&#x589E;&#x52A0;&#x66F4;&#x591A;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x5E76;&#x4E0D;&#x80FD;&#x63D0;&#x9AD8;&#x6027;&#x80FD;&#xFF0C;&#x56E0;&#x4E3A;&#x6BCF;&#x4E2A;&#x5206;&#x7247;&#x4ECE;&#x8282;&#x70B9;&#x4E0A;&#x83B7;&#x5F97;&#x7684;&#x8D44;&#x6E90;&#x4F1A;&#x53D8;&#x5C11;&#x3002; &#x4F60;&#x9700;&#x8981;&#x589E;&#x52A0;&#x66F4;&#x591A;&#x7684;&#x786C;&#x4EF6;&#x8D44;&#x6E90;&#x6765;&#x63D0;&#x5347;&#x541E;&#x5410;&#x91CF;&#x3002;</p>
<p> &#x4F46;&#x662F;&#x66F4;&#x591A;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x6570;&#x63D0;&#x9AD8;&#x4E86;&#x6570;&#x636E;&#x5197;&#x4F59;&#x91CF;&#xFF1A;&#x6309;&#x7167;&#x4E0A;&#x9762;&#x7684;&#x8282;&#x70B9;&#x914D;&#x7F6E;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x5931;&#x53BB;2&#x4E2A;&#x8282;&#x70B9;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x4E0D;&#x4E22;&#x5931;&#x4EFB;&#x4F55;&#x6570;&#x636E;&#x3002;</p>
</blockquote>
<h3 id="&#x5E94;&#x5BF9;&#x6545;&#x969C;"><a name="&#x5E94;&#x5BF9;&#x6545;&#x969C;" class="anchor-navigation-ex-anchor" href="#&#x5E94;&#x5BF9;&#x6545;&#x969C;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5E94;&#x5BF9;&#x6545;&#x969C;</h3>
<p>&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x8BF4;&#x8FC7; Elasticsearch &#x53EF;&#x4EE5;&#x5E94;&#x5BF9;&#x8282;&#x70B9;&#x6545;&#x969C;&#xFF0C;&#x63A5;&#x4E0B;&#x6765;&#x8BA9;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x4E0B;&#x8FD9;&#x4E2A;&#x529F;&#x80FD;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x5173;&#x95ED;&#x7B2C;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#xFF0C;&#x8FD9;&#x65F6;&#x96C6;&#x7FA4;&#x7684;&#x72B6;&#x6001;&#x4E3A;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_coping_with_failure.html#cluster-post-kill" target="_blank">&#x56FE; 6 &#x201C;&#x5173;&#x95ED;&#x4E86;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x540E;&#x7684;&#x96C6;&#x7FA4;&#x201D;</a></p>
<p><strong>&#x56FE; 6. &#x5173;&#x95ED;&#x4E86;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x540E;&#x7684;&#x96C6;&#x7FA4;</strong></p>
<p><img src="assets/elas_0206.png" alt="&#x5173;&#x95ED;&#x4E86;&#x4E00;&#x4E2A;&#x8282;&#x70B9;&#x540E;&#x7684;&#x96C6;&#x7FA4;"></p>
<p>&#x6211;&#x4EEC;&#x5173;&#x95ED;&#x7684;&#x8282;&#x70B9;&#x662F;&#x4E00;&#x4E2A;&#x4E3B;&#x8282;&#x70B9;&#x3002;&#x800C;&#x96C6;&#x7FA4;&#x5FC5;&#x987B;&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#x4E3B;&#x8282;&#x70B9;&#x6765;&#x4FDD;&#x8BC1;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#xFF0C;&#x6240;&#x4EE5;&#x53D1;&#x751F;&#x7684;&#x7B2C;&#x4E00;&#x4EF6;&#x4E8B;&#x60C5;&#x5C31;&#x662F;&#x9009;&#x4E3E;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x4E3B;&#x8282;&#x70B9;&#xFF1A; <code>Node 2</code> &#x3002;</p>
<p>&#x5728;&#x6211;&#x4EEC;&#x5173;&#x95ED; <code>Node 1</code> &#x7684;&#x540C;&#x65F6;&#x4E5F;&#x5931;&#x53BB;&#x4E86;&#x4E3B;&#x5206;&#x7247; <code>1</code> &#x548C; <code>2</code> &#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x7F3A;&#x5931;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x65F6;&#x5019;&#x7D22;&#x5F15;&#x4E5F;&#x4E0D;&#x80FD;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#x3002; &#x5982;&#x679C;&#x6B64;&#x65F6;&#x6765;&#x68C0;&#x67E5;&#x96C6;&#x7FA4;&#x7684;&#x72B6;&#x51B5;&#xFF0C;&#x6211;&#x4EEC;&#x770B;&#x5230;&#x7684;&#x72B6;&#x6001;&#x5C06;&#x4F1A;&#x4E3A; <code>red</code> &#xFF1A;&#x4E0D;&#x662F;&#x6240;&#x6709;&#x4E3B;&#x5206;&#x7247;&#x90FD;&#x5728;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#x3002;</p>
<p>&#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;&#x5728;&#x5176;&#x5B83;&#x8282;&#x70B9;&#x4E0A;&#x5B58;&#x5728;&#x7740;&#x8FD9;&#x4E24;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x5B8C;&#x6574;&#x526F;&#x672C;&#xFF0C; &#x6240;&#x4EE5;&#x65B0;&#x7684;&#x4E3B;&#x8282;&#x70B9;&#x7ACB;&#x5373;&#x5C06;&#x8FD9;&#x4E9B;&#x5206;&#x7247;&#x5728; <code>Node 2</code> &#x548C; <code>Node 3</code> &#x4E0A;&#x5BF9;&#x5E94;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x63D0;&#x5347;&#x4E3A;&#x4E3B;&#x5206;&#x7247;&#xFF0C; &#x6B64;&#x65F6;&#x96C6;&#x7FA4;&#x7684;&#x72B6;&#x6001;&#x5C06;&#x4F1A;&#x4E3A; <code>yellow</code> &#x3002; &#x8FD9;&#x4E2A;&#x63D0;&#x5347;&#x4E3B;&#x5206;&#x7247;&#x7684;&#x8FC7;&#x7A0B;&#x662F;&#x77AC;&#x95F4;&#x53D1;&#x751F;&#x7684;&#xFF0C;&#x5982;&#x540C;&#x6309;&#x4E0B;&#x4E00;&#x4E2A;&#x5F00;&#x5173;&#x4E00;&#x822C;&#x3002;</p>
<p>&#x4E3A;&#x4EC0;&#x4E48;&#x6211;&#x4EEC;&#x96C6;&#x7FA4;&#x72B6;&#x6001;&#x662F; <code>yellow</code> &#x800C;&#x4E0D;&#x662F; <code>green</code> &#x5462;&#xFF1F; &#x867D;&#x7136;&#x6211;&#x4EEC;&#x62E5;&#x6709;&#x6240;&#x6709;&#x7684;&#x4E09;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#xFF0C;&#x4F46;&#x662F;&#x540C;&#x65F6;&#x8BBE;&#x7F6E;&#x4E86;&#x6BCF;&#x4E2A;&#x4E3B;&#x5206;&#x7247;&#x9700;&#x8981;&#x5BF9;&#x5E94;2&#x4EFD;&#x526F;&#x672C;&#x5206;&#x7247;&#xFF0C;&#x800C;&#x6B64;&#x65F6;&#x53EA;&#x5B58;&#x5728;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#x5206;&#x7247;&#x3002; &#x6240;&#x4EE5;&#x96C6;&#x7FA4;&#x4E0D;&#x80FD;&#x4E3A; <code>green</code> &#x7684;&#x72B6;&#x6001;&#xFF0C;&#x4E0D;&#x8FC7;&#x6211;&#x4EEC;&#x4E0D;&#x5FC5;&#x8FC7;&#x4E8E;&#x62C5;&#x5FC3;&#xFF1A;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x540C;&#x6837;&#x5173;&#x95ED;&#x4E86; <code>Node 2</code> &#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x7A0B;&#x5E8F; <em>&#x4F9D;&#x7136;</em> &#x53EF;&#x4EE5;&#x4FDD;&#x6301;&#x5728;&#x4E0D;&#x4E22;&#x4EFB;&#x4F55;&#x6570;&#x636E;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x8FD0;&#x884C;&#xFF0C;&#x56E0;&#x4E3A; <code>Node 3</code> &#x4E3A;&#x6BCF;&#x4E00;&#x4E2A;&#x5206;&#x7247;&#x90FD;&#x4FDD;&#x7559;&#x7740;&#x4E00;&#x4EFD;&#x526F;&#x672C;&#x3002;</p>
<p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x91CD;&#x65B0;&#x542F;&#x52A8; <code>Node 1</code> &#xFF0C;&#x96C6;&#x7FA4;&#x53EF;&#x4EE5;&#x5C06;&#x7F3A;&#x5931;&#x7684;&#x526F;&#x672C;&#x5206;&#x7247;&#x518D;&#x6B21;&#x8FDB;&#x884C;&#x5206;&#x914D;&#xFF0C;&#x90A3;&#x4E48;&#x96C6;&#x7FA4;&#x7684;&#x72B6;&#x6001;&#x4E5F;&#x5C06;&#x5982;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/_scale_horizontally.html#cluster-three-nodes-two-replicas" target="_blank">&#x56FE; 5 &#x201C;&#x5C06;&#x53C2;&#x6570; <code>number_of_replicas</code> &#x8C03;&#x5927;&#x5230; 2&#x201D;</a>&#x6240;&#x793A;&#x3002; &#x5982;&#x679C; <code>Node 1</code> &#x4F9D;&#x7136;&#x62E5;&#x6709;&#x7740;&#x4E4B;&#x524D;&#x7684;&#x5206;&#x7247;&#xFF0C;&#x5B83;&#x5C06;&#x5C1D;&#x8BD5;&#x53BB;&#x91CD;&#x7528;&#x5B83;&#x4EEC;&#xFF0C;&#x540C;&#x65F6;&#x4EC5;&#x4ECE;&#x4E3B;&#x5206;&#x7247;&#x590D;&#x5236;&#x53D1;&#x751F;&#x4E86;&#x4FEE;&#x6539;&#x7684;&#x6570;&#x636E;&#x6587;&#x4EF6;&#x3002;</p>
<p>&#x5230;&#x76EE;&#x524D;&#x4E3A;&#x6B62;&#xFF0C;&#x4F60;&#x5E94;&#x8BE5;&#x5BF9;&#x5206;&#x7247;&#x5982;&#x4F55;&#x4F7F;&#x5F97; Elasticsearch &#x8FDB;&#x884C;&#x6C34;&#x5E73;&#x6269;&#x5BB9;&#x4EE5;&#x53CA;&#x6570;&#x636E;&#x4FDD;&#x969C;&#x7B49;&#x77E5;&#x8BC6;&#x6709;&#x4E86;&#x4E00;&#x5B9A;&#x4E86;&#x89E3;&#x3002; &#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x5C06;&#x8BB2;&#x8FF0;&#x5173;&#x4E8E;&#x5206;&#x7247;&#x751F;&#x547D;&#x5468;&#x671F;&#x7684;&#x66F4;&#x591A;&#x7EC6;&#x8282;&#x3002;</p>
<h2 id="&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;"><a name="&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;" class="anchor-navigation-ex-anchor" href="#&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6570;&#x636E;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;</h2>
<p>&#x65E0;&#x8BBA;&#x6211;&#x4EEC;&#x5199;&#x4EC0;&#x4E48;&#x6837;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x76EE;&#x7684;&#x90FD;&#x662F;&#x4E00;&#x6837;&#x7684;&#xFF1A;&#x4EE5;&#x67D0;&#x79CD;&#x65B9;&#x5F0F;&#x7EC4;&#x7EC7;&#x6570;&#x636E;&#x670D;&#x52A1;&#x6211;&#x4EEC;&#x7684;&#x76EE;&#x7684;&#x3002; &#x4F46;&#x662F;&#x6570;&#x636E;&#x4E0D;&#x4EC5;&#x4EC5;&#x7531;&#x968F;&#x673A;&#x4F4D;&#x548C;&#x5B57;&#x8282;&#x7EC4;&#x6210;&#x3002;&#x6211;&#x4EEC;&#x5EFA;&#x7ACB;&#x6570;&#x636E;&#x5143;&#x7D20;&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;&#x4EE5;&#x4FBF;&#x4E8E;&#x8868;&#x793A;&#x5B9E;&#x4F53;&#xFF0C;&#x6216;&#x8005;&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x4E2D;&#x5B58;&#x5728;&#x7684; <em>&#x4E8B;&#x7269;</em> &#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x77E5;&#x9053;&#x4E00;&#x4E2A;&#x540D;&#x5B57;&#x548C;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x5730;&#x5740;&#x5C5E;&#x4E8E;&#x540C;&#x4E00;&#x4E2A;&#x4EBA;&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x4EEC;&#x5C06;&#x4F1A;&#x66F4;&#x6709;&#x610F;&#x4E49;&#x3002;</p>
<p>&#x5C3D;&#x7BA1;&#x5728;&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x4E2D;&#xFF0C;&#x4E0D;&#x662F;&#x6240;&#x6709;&#x7684;&#x7C7B;&#x578B;&#x76F8;&#x540C;&#x7684;&#x5B9E;&#x4F53;&#x770B;&#x8D77;&#x6765;&#x90FD;&#x662F;&#x4E00;&#x6837;&#x7684;&#x3002; &#x4E00;&#x4E2A;&#x4EBA;&#x53EF;&#x80FD;&#x6709;&#x4E00;&#x4E2A;&#x5BB6;&#x5EAD;&#x7535;&#x8BDD;&#x53F7;&#x7801;&#xFF0C;&#x800C;&#x53E6;&#x4E00;&#x4E2A;&#x4EBA;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x624B;&#x673A;&#x53F7;&#x7801;&#xFF0C;&#x518D;&#x4E00;&#x4E2A;&#x4EBA;&#x53EF;&#x80FD;&#x4E24;&#x8005;&#x517C;&#x6709;&#x3002; &#x4E00;&#x4E2A;&#x4EBA;&#x53EF;&#x80FD;&#x6709;&#x4E09;&#x4E2A;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x5730;&#x5740;&#xFF0C;&#x800C;&#x53E6;&#x4E00;&#x4E2A;&#x4EBA;&#x5374;&#x4E00;&#x4E2A;&#x90FD;&#x6CA1;&#x6709;&#x3002;&#x4E00;&#x4F4D;&#x897F;&#x73ED;&#x7259;&#x4EBA;&#x53EF;&#x80FD;&#x6709;&#x4E24;&#x4E2A;&#x59D3;&#xFF0C;&#x800C;&#x8BB2;&#x82F1;&#x8BED;&#x7684;&#x4EBA;&#x53EF;&#x80FD;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x59D3;&#x3002;</p>
<p>&#x9762;&#x5411;&#x5BF9;&#x8C61;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x5982;&#x6B64;&#x6D41;&#x884C;&#x7684;&#x539F;&#x56E0;&#x4E4B;&#x4E00;&#x662F;&#x5BF9;&#x8C61;&#x5E2E;&#x6211;&#x4EEC;&#x8868;&#x793A;&#x548C;&#x5904;&#x7406;&#x73B0;&#x5B9E;&#x4E16;&#x754C;&#x5177;&#x6709;&#x6F5C;&#x5728;&#x7684;&#x590D;&#x6742;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x7684;&#x5B9E;&#x4F53;&#xFF0C;&#x5230;&#x76EE;&#x524D;&#x4E3A;&#x6B62;&#xFF0C;&#x4E00;&#x5207;&#x90FD;&#x5F88;&#x5B8C;&#x7F8E;&#xFF01;</p>
<p>&#x4F46;&#x662F;&#x5F53;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5B58;&#x50A8;&#x8FD9;&#x4E9B;&#x5B9E;&#x4F53;&#x65F6;&#x95EE;&#x9898;&#x6765;&#x4E86;&#xFF0C;&#x4F20;&#x7EDF;&#x4E0A;&#xFF0C;&#x6211;&#x4EEC;&#x4EE5;&#x884C;&#x548C;&#x5217;&#x7684;&#x5F62;&#x5F0F;&#x5B58;&#x50A8;&#x6570;&#x636E;&#x5230;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#xFF0C;&#x76F8;&#x5F53;&#x4E8E;&#x4F7F;&#x7528;&#x7535;&#x5B50;&#x8868;&#x683C;&#x3002; &#x6B63;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4E86;&#x8FD9;&#x79CD;&#x4E0D;&#x7075;&#x6D3B;&#x7684;&#x5B58;&#x50A8;&#x5A92;&#x4ECB;&#x5BFC;&#x81F4;&#x6240;&#x6709;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x5BF9;&#x8C61;&#x7684;&#x7075;&#x6D3B;&#x6027;&#x90FD;&#x4E22;&#x5931;&#x4E86;&#x3002;</p>
<p>&#x4F46;&#x662F;&#x5426;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5C06;&#x6211;&#x4EEC;&#x7684;&#x5BF9;&#x8C61;&#x6309;&#x5BF9;&#x8C61;&#x7684;&#x65B9;&#x5F0F;&#x6765;&#x5B58;&#x50A8;&#xFF1F; &#x8FD9;&#x6837;&#x6211;&#x4EEC;&#x5C31;&#x80FD;&#x66F4;&#x52A0;&#x4E13;&#x6CE8;&#x4E8E; <em>&#x4F7F;&#x7528;</em> &#x6570;&#x636E;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5728;&#x7535;&#x5B50;&#x8868;&#x683C;&#x7684;&#x5C40;&#x9650;&#x6027;&#x4E0B;&#x5BF9;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x5EFA;&#x6A21;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x91CD;&#x65B0;&#x5229;&#x7528;&#x5BF9;&#x8C61;&#x7684;&#x7075;&#x6D3B;&#x6027;&#x3002;</p>
<p>&#x4E00;&#x4E2A; <em>&#x5BF9;&#x8C61;</em> &#x662F;&#x57FA;&#x4E8E;&#x7279;&#x5B9A;&#x8BED;&#x8A00;&#x7684;&#x5185;&#x5B58;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x3002; &#x4E3A;&#x4E86;&#x901A;&#x8FC7;&#x7F51;&#x7EDC;&#x53D1;&#x9001;&#x6216;&#x8005;&#x5B58;&#x50A8;&#x5B83;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5C06;&#x5B83;&#x8868;&#x793A;&#x6210;&#x67D0;&#x79CD;&#x6807;&#x51C6;&#x7684;&#x683C;&#x5F0F;&#x3002; <a href="http://en.wikipedia.org/wiki/Json" target="_blank">JSON</a> &#x662F;&#x4E00;&#x79CD;&#x4EE5;&#x4EBA;&#x53EF;&#x8BFB;&#x7684;&#x6587;&#x672C;&#x8868;&#x793A;&#x5BF9;&#x8C61;&#x7684;&#x65B9;&#x6CD5;&#x3002; &#x5B83;&#x5DF2;&#x7ECF;&#x53D8;&#x6210; NoSQL &#x4E16;&#x754C;&#x4EA4;&#x6362;&#x6570;&#x636E;&#x7684;&#x4E8B;&#x5B9E;&#x6807;&#x51C6;&#x3002;&#x5F53;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x88AB;&#x5E8F;&#x5217;&#x5316;&#x6210;&#x4E3A; JSON&#xFF0C;&#x5B83;&#x88AB;&#x79F0;&#x4E3A;&#x4E00;&#x4E2A; <em>JSON &#x6587;&#x6863;</em> &#x3002;</p>
<p>Elastcisearch &#x662F;&#x5206;&#x5E03;&#x5F0F;&#x7684; <em>&#x6587;&#x6863;</em> &#x5B58;&#x50A8;&#x3002;&#x5B83;&#x80FD;&#x5B58;&#x50A8;&#x548C;&#x68C0;&#x7D22;&#x590D;&#x6742;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;--&#x5E8F;&#x5217;&#x5316;&#x6210;&#x4E3A;JSON&#x6587;&#x6863;--&#x4EE5; <em>&#x5B9E;&#x65F6;</em> &#x7684;&#x65B9;&#x5F0F;&#x3002; &#x6362;&#x53E5;&#x8BDD;&#x8BF4;&#xFF0C;&#x4E00;&#x65E6;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x88AB;&#x5B58;&#x50A8;&#x5728; Elasticsearch &#x4E2D;&#xFF0C;&#x5B83;&#x5C31;&#x662F;&#x53EF;&#x4EE5;&#x88AB;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x4EFB;&#x610F;&#x8282;&#x70B9;&#x68C0;&#x7D22;&#x5230;&#x3002;</p>
<p>&#x5F53;&#x7136;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x4EC5;&#x8981;&#x5B58;&#x50A8;&#x6570;&#x636E;&#xFF0C;&#x6211;&#x4EEC;&#x4E00;&#x5B9A;&#x8FD8;&#x9700;&#x8981;&#x67E5;&#x8BE2;&#x5B83;&#xFF0C;&#x6210;&#x6279;&#x4E14;&#x5FEB;&#x901F;&#x7684;&#x67E5;&#x8BE2;&#x5B83;&#x4EEC;&#x3002; &#x5C3D;&#x7BA1;&#x73B0;&#x5B58;&#x7684; NoSQL &#x89E3;&#x51B3;&#x65B9;&#x6848;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x4EE5;&#x6587;&#x6863;&#x7684;&#x5F62;&#x5F0F;&#x5B58;&#x50A8;&#x5BF9;&#x8C61;&#xFF0C;&#x4F46;&#x662F;&#x4ED6;&#x4EEC;&#x4ECD;&#x65E7;&#x9700;&#x8981;&#x6211;&#x4EEC;&#x601D;&#x8003;&#x5982;&#x4F55;&#x67E5;&#x8BE2;&#x6211;&#x4EEC;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x4EE5;&#x53CA;&#x786E;&#x5B9A;&#x54EA;&#x4E9B;&#x5B57;&#x6BB5;&#x9700;&#x8981;&#x88AB;&#x7D22;&#x5F15;&#x4EE5;&#x52A0;&#x5FEB;&#x6570;&#x636E;&#x68C0;&#x7D22;&#x3002;</p>
<p>&#x5728; Elasticsearch &#x4E2D;&#xFF0C; <em>&#x6BCF;&#x4E2A;&#x5B57;&#x6BB5;&#x7684;&#x6240;&#x6709;&#x6570;&#x636E;</em> &#x90FD;&#x662F; <em>&#x9ED8;&#x8BA4;&#x88AB;&#x7D22;&#x5F15;&#x7684;</em> &#x3002; &#x5373;&#x6BCF;&#x4E2A;&#x5B57;&#x6BB5;&#x90FD;&#x6709;&#x4E3A;&#x4E86;&#x5FEB;&#x901F;&#x68C0;&#x7D22;&#x8BBE;&#x7F6E;&#x7684;&#x4E13;&#x7528;&#x5012;&#x6392;&#x7D22;&#x5F15;&#x3002;&#x800C;&#x4E14;&#xFF0C;&#x4E0D;&#x50CF;&#x5176;&#x4ED6;&#x591A;&#x6570;&#x7684;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x5B83;&#x80FD;&#x5728; <em>&#x540C;&#x4E00;&#x4E2A;&#x67E5;&#x8BE2;&#x4E2D;</em> &#x4F7F;&#x7528;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x5012;&#x6392;&#x7D22;&#x5F15;&#xFF0C;&#x5E76;&#x4EE5;&#x60CA;&#x4EBA;&#x7684;&#x901F;&#x5EA6;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x3002;</p>
<p>&#x5728;&#x672C;&#x7AE0;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C55;&#x793A;&#x4E86;&#x7528;&#x6765;&#x521B;&#x5EFA;&#xFF0C;&#x68C0;&#x7D22;&#xFF0C;&#x66F4;&#x65B0;&#x548C;&#x5220;&#x9664;&#x6587;&#x6863;&#x7684; API&#x3002;&#x5C31;&#x76EE;&#x524D;&#x800C;&#x8A00;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x5173;&#x5FC3;&#x6587;&#x6863;&#x4E2D;&#x7684;&#x6570;&#x636E;&#x6216;&#x8005;&#x600E;&#x6837;&#x67E5;&#x8BE2;&#x5B83;&#x4EEC;&#x3002; &#x6240;&#x6709;&#x6211;&#x4EEC;&#x5173;&#x5FC3;&#x7684;&#x5C31;&#x662F;&#x5728; Elasticsearch &#x4E2D;&#x600E;&#x6837;&#x5B89;&#x5168;&#x7684;&#x5B58;&#x50A8;&#x6587;&#x6863;&#xFF0C;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x5C06;&#x6587;&#x6863;&#x518D;&#x6B21;&#x8FD4;&#x56DE;&#x3002;</p>
<h3 id="&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;"><a name="&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4EC0;&#x4E48;&#x662F;&#x6587;&#x6863;?  </h3>
<p>&#x5728;&#x5927;&#x591A;&#x6570;&#x5E94;&#x7528;&#x4E2D;&#xFF0C;&#x591A;&#x6570;&#x5B9E;&#x4F53;&#x6216;&#x5BF9;&#x8C61;&#x53EF;&#x4EE5;&#x88AB;&#x5E8F;&#x5217;&#x5316;&#x4E3A;&#x5305;&#x542B;&#x952E;&#x503C;&#x5BF9;&#x7684; JSON &#x5BF9;&#x8C61;&#x3002; &#x4E00;&#x4E2A; <em>&#x952E;</em> &#x53EF;&#x4EE5;&#x662F;&#x4E00;&#x4E2A;&#x5B57;&#x6BB5;&#x6216;&#x5B57;&#x6BB5;&#x7684;&#x540D;&#x79F0;&#xFF0C;&#x4E00;&#x4E2A; <em>&#x503C;</em> &#x53EF;&#x4EE5;&#x662F;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4E00;&#x4E2A;&#x6570;&#x5B57;&#xFF0C;&#x4E00;&#x4E2A;&#x5E03;&#x5C14;&#x503C;&#xFF0C; &#x53E6;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#xFF0C;&#x4E00;&#x4E9B;&#x6570;&#x7EC4;&#x503C;&#xFF0C;&#x6216;&#x4E00;&#x4E9B;&#x5176;&#x5B83;&#x7279;&#x6B8A;&#x7C7B;&#x578B;&#x8BF8;&#x5982;&#x8868;&#x793A;&#x65E5;&#x671F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x6216;&#x4EE3;&#x8868;&#x4E00;&#x4E2A;&#x5730;&#x7406;&#x4F4D;&#x7F6E;&#x7684;&#x5BF9;&#x8C61;&#xFF1A;</p>
<pre><code class="lang-js">{
    <span class="hljs-string">&quot;name&quot;</span>:         <span class="hljs-string">&quot;John Smith&quot;</span>,
    <span class="hljs-string">&quot;age&quot;</span>:          <span class="hljs-number">42</span>,
    <span class="hljs-string">&quot;confirmed&quot;</span>:    <span class="hljs-literal">true</span>,
    <span class="hljs-string">&quot;join_date&quot;</span>:    <span class="hljs-string">&quot;2014-06-01&quot;</span>,
    <span class="hljs-string">&quot;home&quot;</span>: {
        <span class="hljs-string">&quot;lat&quot;</span>:      <span class="hljs-number">51.5</span>,
        <span class="hljs-string">&quot;lon&quot;</span>:      <span class="hljs-number">0.1</span>
    },
    <span class="hljs-string">&quot;accounts&quot;</span>: [
        {
            <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;facebook&quot;</span>,
            <span class="hljs-string">&quot;id&quot;</span>:   <span class="hljs-string">&quot;johnsmith&quot;</span>
        },
        {
            <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;twitter&quot;</span>,
            <span class="hljs-string">&quot;id&quot;</span>:   <span class="hljs-string">&quot;johnsmith&quot;</span>
        }
    ]
}
</code></pre>
<p>&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x7684;&#x672F;&#x8BED; <em>&#x5BF9;&#x8C61;</em> &#x548C; <em>&#x6587;&#x6863;</em> &#x662F;&#x53EF;&#x4EE5;&#x4E92;&#x76F8;&#x66FF;&#x6362;&#x7684;&#x3002;&#x4E0D;&#x8FC7;&#xFF0C;&#x6709;&#x4E00;&#x4E2A;&#x533A;&#x522B;&#xFF1A; &#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x4EC5;&#x4EC5;&#x662F;&#x7C7B;&#x4F3C;&#x4E8E; hash &#x3001; hashmap &#x3001;&#x5B57;&#x5178;&#x6216;&#x8005;&#x5173;&#x8054;&#x6570;&#x7EC4;&#x7684; JSON &#x5BF9;&#x8C61;&#xFF0C;&#x5BF9;&#x8C61;&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x5D4C;&#x5957;&#x5176;&#x4ED6;&#x7684;&#x5BF9;&#x8C61;&#x3002; &#x5BF9;&#x8C61;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x4E86;&#x53E6;&#x5916;&#x4E00;&#x4E9B;&#x5BF9;&#x8C61;&#x3002;&#x5728; Elasticsearch &#x4E2D;&#xFF0C;&#x672F;&#x8BED; <em>&#x6587;&#x6863;</em> &#x6709;&#x7740;&#x7279;&#x5B9A;&#x7684;&#x542B;&#x4E49;&#x3002;&#x5B83;&#x662F;&#x6307;&#x6700;&#x9876;&#x5C42;&#x6216;&#x8005;&#x6839;&#x5BF9;&#x8C61;, &#x8FD9;&#x4E2A;&#x6839;&#x5BF9;&#x8C61;&#x88AB;&#x5E8F;&#x5217;&#x5316;&#x6210; JSON &#x5E76;&#x5B58;&#x50A8;&#x5230; Elasticsearch &#x4E2D;&#xFF0C;&#x6307;&#x5B9A;&#x4E86;&#x552F;&#x4E00; ID&#x3002;</p>
<blockquote>
<p> <img src="assets/warning.png" alt="&#x8B66;&#x544A;">  &#x5B57;&#x6BB5;&#x7684;&#x540D;&#x5B57;&#x53EF;&#x4EE5;&#x662F;&#x4EFB;&#x4F55;&#x5408;&#x6CD5;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F46; <em>&#x4E0D;&#x53EF;&#x4EE5;</em> &#x5305;&#x542B;&#x82F1;&#x6587;&#x53E5;&#x53F7;(.)&#x3002;  </p>
</blockquote>
<h3 id="&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;"><a name="&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;" class="anchor-navigation-ex-anchor" href="#&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6587;&#x6863;&#x5143;&#x6570;&#x636E;</h3>
<p>&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4E0D;&#x4EC5;&#x4EC5;&#x5305;&#x542B;&#x5B83;&#x7684;&#x6570;&#x636E; &#xFF0C;&#x4E5F;&#x5305;&#x542B; <em>&#x5143;&#x6570;&#x636E;</em> &#x2014;&#x2014; <em>&#x6709;&#x5173;</em> &#x6587;&#x6863;&#x7684;&#x4FE1;&#x606F;&#x3002; &#x4E09;&#x4E2A;&#x5FC5;&#x987B;&#x7684;&#x5143;&#x6570;&#x636E;&#x5143;&#x7D20;&#x5982;&#x4E0B;&#xFF1A;</p>
<ul>
<li><p><code>_index</code></p>
<p>&#x6587;&#x6863;&#x5728;&#x54EA;&#x5B58;&#x653E;</p>
</li>
<li><p><code>_type</code></p>
<p>&#x6587;&#x6863;&#x8868;&#x793A;&#x7684;&#x5BF9;&#x8C61;&#x7C7B;&#x522B;</p>
</li>
<li><p><code>_id</code></p>
<p>&#x6587;&#x6863;&#x552F;&#x4E00;&#x6807;&#x8BC6;</p>
</li>
</ul>
<p><strong>_index</strong></p>
<p>&#x4E00;&#x4E2A; <em>&#x7D22;&#x5F15;</em> &#x5E94;&#x8BE5;&#x662F;&#x56E0;&#x5171;&#x540C;&#x7684;&#x7279;&#x6027;&#x88AB;&#x5206;&#x7EC4;&#x5230;&#x4E00;&#x8D77;&#x7684;&#x6587;&#x6863;&#x96C6;&#x5408;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x4F60;&#x53EF;&#x80FD;&#x5B58;&#x50A8;&#x6240;&#x6709;&#x7684;&#x4EA7;&#x54C1;&#x5728;&#x7D22;&#x5F15; <code>products</code>&#x4E2D;&#xFF0C;&#x800C;&#x5B58;&#x50A8;&#x6240;&#x6709;&#x9500;&#x552E;&#x7684;&#x4EA4;&#x6613;&#x5230;&#x7D22;&#x5F15; <code>sales</code> &#x4E2D;&#x3002; &#x867D;&#x7136;&#x4E5F;&#x5141;&#x8BB8;&#x5B58;&#x50A8;&#x4E0D;&#x76F8;&#x5173;&#x7684;&#x6570;&#x636E;&#x5230;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x4E2D;&#xFF0C;&#x4F46;&#x8FD9;&#x901A;&#x5E38;&#x770B;&#x4F5C;&#x662F;&#x4E00;&#x4E2A;&#x53CD;&#x6A21;&#x5F0F;&#x7684;&#x505A;&#x6CD5;&#x3002;</p>
<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x5728; Elasticsearch &#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x6570;&#x636E;&#x662F;&#x88AB;&#x5B58;&#x50A8;&#x548C;&#x7D22;&#x5F15;&#x5728; <em>&#x5206;&#x7247;</em> &#x4E2D;&#xFF0C;&#x800C;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x4EC5;&#x4EC5;&#x662F;&#x903B;&#x8F91;&#x4E0A;&#x7684;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#xFF0C; &#x8FD9;&#x4E2A;&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x7531;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x5206;&#x7247;&#x7EC4;&#x5408;&#x5728;&#x4E00;&#x8D77;&#x3002; &#x7136;&#x800C;&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5185;&#x90E8;&#x7EC6;&#x8282;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6839;&#x672C;&#x4E0D;&#x5E94;&#x8BE5;&#x5173;&#x5FC3;&#x5206;&#x7247;&#xFF0C;&#x5BF9;&#x4E8E;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x800C;&#x8A00;&#xFF0C;&#x53EA;&#x9700;&#x77E5;&#x9053;&#x6587;&#x6863;&#x4F4D;&#x4E8E;&#x4E00;&#x4E2A; <em>&#x7D22;&#x5F15;</em>&#x5185;&#x3002; Elasticsearch &#x4F1A;&#x5904;&#x7406;&#x6240;&#x6709;&#x7684;&#x7EC6;&#x8282;&#x3002;</p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x5C06;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-management.html" target="_blank"><em>&#x7D22;&#x5F15;&#x7BA1;&#x7406;</em></a> &#x4ECB;&#x7ECD;&#x5982;&#x4F55;&#x81EA;&#x884C;&#x521B;&#x5EFA;&#x548C;&#x7BA1;&#x7406;&#x7D22;&#x5F15;&#xFF0C;&#x4F46;&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x5C06;&#x8BA9; Elasticsearch &#x5E2E;&#x6211;&#x4EEC;&#x521B;&#x5EFA;&#x7D22;&#x5F15;&#x3002; &#x6240;&#x6709;&#x9700;&#x8981;&#x6211;&#x4EEC;&#x505A;&#x7684;&#x5C31;&#x662F;&#x9009;&#x62E9;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x540D;&#xFF0C;&#x8FD9;&#x4E2A;&#x540D;&#x5B57;&#x5FC5;&#x987B;&#x5C0F;&#x5199;&#xFF0C;&#x4E0D;&#x80FD;&#x4EE5;&#x4E0B;&#x5212;&#x7EBF;&#x5F00;&#x5934;&#xFF0C;&#x4E0D;&#x80FD;&#x5305;&#x542B;&#x9017;&#x53F7;&#x3002;&#x6211;&#x4EEC;&#x7528; <code>website</code> &#x4F5C;&#x4E3A;&#x7D22;&#x5F15;&#x540D;&#x4E3E;&#x4F8B;&#x3002;</p>
<p><strong>_type</strong></p>
<p>&#x6570;&#x636E;&#x53EF;&#x80FD;&#x5728;&#x7D22;&#x5F15;&#x4E2D;&#x53EA;&#x662F;&#x677E;&#x6563;&#x7684;&#x7EC4;&#x5408;&#x5728;&#x4E00;&#x8D77;&#xFF0C;&#x4F46;&#x662F;&#x901A;&#x5E38;&#x660E;&#x786E;&#x5B9A;&#x4E49;&#x4E00;&#x4E9B;&#x6570;&#x636E;&#x4E2D;&#x7684;&#x5B50;&#x5206;&#x533A;&#x662F;&#x5F88;&#x6709;&#x7528;&#x7684;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x4EA7;&#x54C1;&#x90FD;&#x653E;&#x5728;&#x4E00;&#x4E2A;&#x7D22;&#x5F15;&#x4E2D;&#xFF0C;&#x4F46;&#x662F;&#x4F60;&#x6709;&#x8BB8;&#x591A;&#x4E0D;&#x540C;&#x7684;&#x4EA7;&#x54C1;&#x7C7B;&#x522B;&#xFF0C;&#x6BD4;&#x5982; &quot;electronics&quot; &#x3001; &quot;kitchen&quot; &#x548C; &quot;lawn-care&quot;&#x3002;</p>
<p>&#x8FD9;&#x4E9B;&#x6587;&#x6863;&#x5171;&#x4EAB;&#x4E00;&#x79CD;&#x76F8;&#x540C;&#x7684;&#xFF08;&#x6216;&#x975E;&#x5E38;&#x76F8;&#x4F3C;&#xFF09;&#x7684;&#x6A21;&#x5F0F;&#xFF1A;&#x4ED6;&#x4EEC;&#x6709;&#x4E00;&#x4E2A;&#x6807;&#x9898;&#x3001;&#x63CF;&#x8FF0;&#x3001;&#x4EA7;&#x54C1;&#x4EE3;&#x7801;&#x548C;&#x4EF7;&#x683C;&#x3002;&#x4ED6;&#x4EEC;&#x53EA;&#x662F;&#x6B63;&#x597D;&#x5C5E;&#x4E8E;&#x201C;&#x4EA7;&#x54C1;&#x201D;&#x4E0B;&#x7684;&#x4E00;&#x4E9B;&#x5B50;&#x7C7B;&#x3002;</p>
<p>Elasticsearch &#x516C;&#x5F00;&#x4E86;&#x4E00;&#x4E2A;&#x79F0;&#x4E3A; <em>types</em> &#xFF08;&#x7C7B;&#x578B;&#xFF09;&#x7684;&#x7279;&#x6027;&#xFF0C;&#x5B83;&#x5141;&#x8BB8;&#x60A8;&#x5728;&#x7D22;&#x5F15;&#x4E2D;&#x5BF9;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x903B;&#x8F91;&#x5206;&#x533A;&#x3002;&#x4E0D;&#x540C; types &#x7684;&#x6587;&#x6863;&#x53EF;&#x80FD;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x5B57;&#x6BB5;&#xFF0C;&#x4F46;&#x6700;&#x597D;&#x80FD;&#x591F;&#x975E;&#x5E38;&#x76F8;&#x4F3C;&#x3002; &#x6211;&#x4EEC;&#x5C06;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/mapping.html" target="_blank">&#x7C7B;&#x578B;&#x548C;&#x6620;&#x5C04;</a> &#x4E2D;&#x66F4;&#x591A;&#x7684;&#x8BA8;&#x8BBA;&#x5173;&#x4E8E; types &#x7684;&#x4E00;&#x4E9B;&#x5E94;&#x7528;&#x548C;&#x9650;&#x5236;&#x3002;</p>
<p>&#x4E00;&#x4E2A; <code>_type</code> &#x547D;&#x540D;&#x53EF;&#x4EE5;&#x662F;&#x5927;&#x5199;&#x6216;&#x8005;&#x5C0F;&#x5199;&#xFF0C;&#x4F46;&#x662F;&#x4E0D;&#x80FD;&#x4EE5;&#x4E0B;&#x5212;&#x7EBF;&#x6216;&#x8005;&#x53E5;&#x53F7;&#x5F00;&#x5934;&#xFF0C;&#x4E0D;&#x5E94;&#x8BE5;&#x5305;&#x542B;&#x9017;&#x53F7;&#xFF0C; &#x5E76;&#x4E14;&#x957F;&#x5EA6;&#x9650;&#x5236;&#x4E3A;256&#x4E2A;&#x5B57;&#x7B26;. &#x6211;&#x4EEC;&#x4F7F;&#x7528; <code>blog</code> &#x4F5C;&#x4E3A;&#x7C7B;&#x578B;&#x540D;&#x4E3E;&#x4F8B;&#x3002;</p>
<p><strong>_id</strong></p>
<p><em>ID</em> &#x662F;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C; &#x5F53;&#x5B83;&#x548C; <code>_index</code> &#x4EE5;&#x53CA; <code>_type</code> &#x7EC4;&#x5408;&#x5C31;&#x53EF;&#x4EE5;&#x552F;&#x4E00;&#x786E;&#x5B9A; Elasticsearch &#x4E2D;&#x7684;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002; &#x5F53;&#x4F60;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x8981;&#x4E48;&#x63D0;&#x4F9B;&#x81EA;&#x5DF1;&#x7684; <code>_id</code> &#xFF0C;&#x8981;&#x4E48;&#x8BA9; Elasticsearch &#x5E2E;&#x4F60;&#x751F;&#x6210;&#x3002;</p>
<p><strong>&#x5176;&#x4ED6;&#x5143;&#x6570;&#x636E;</strong></p>
<p>&#x8FD8;&#x6709;&#x4E00;&#x4E9B;&#x5176;&#x4ED6;&#x7684;&#x5143;&#x6570;&#x636E;&#x5143;&#x7D20;&#xFF0C;&#x4ED6;&#x4EEC;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/mapping.html" target="_blank">&#x7C7B;&#x578B;&#x548C;&#x6620;&#x5C04;</a> &#x8FDB;&#x884C;&#x4E86;&#x4ECB;&#x7ECD;&#x3002;&#x901A;&#x8FC7;&#x524D;&#x9762;&#x5DF2;&#x7ECF;&#x5217;&#x51FA;&#x7684;&#x5143;&#x6570;&#x636E;&#x5143;&#x7D20;&#xFF0C; &#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x80FD;&#x5B58;&#x50A8;&#x6587;&#x6863;&#x5230; Elasticsearch &#x4E2D;&#x5E76;&#x901A;&#x8FC7; ID &#x68C0;&#x7D22;&#x5B83;--&#x6362;&#x53E5;&#x8BDD;&#x8BF4;&#xFF0C;&#x4F7F;&#x7528; Elasticsearch &#x4F5C;&#x4E3A;&#x6587;&#x6863;&#x7684;&#x5B58;&#x50A8;&#x4ECB;&#x8D28;&#x3002;</p>
<h3 id="&#x7D22;&#x5F15;&#x6587;&#x6863;"><a name="&#x7D22;&#x5F15;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x7D22;&#x5F15;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x7D22;&#x5F15;&#x6587;&#x6863;</h3>
<p>&#x901A;&#x8FC7;&#x4F7F;&#x7528; <code>index</code> API &#xFF0C;&#x6587;&#x6863;&#x53EF;&#x4EE5;&#x88AB; <em>&#x7D22;&#x5F15;</em> &#x2014;&#x2014; &#x5B58;&#x50A8;&#x548C;&#x4F7F;&#x6587;&#x6863;&#x53EF;&#x88AB;&#x641C;&#x7D22; &#x3002; &#x4F46;&#x662F;&#x9996;&#x5148;&#xFF0C;&#x6211;&#x4EEC;&#x8981;&#x786E;&#x5B9A;&#x6587;&#x6863;&#x7684;&#x4F4D;&#x7F6E;&#x3002;&#x6B63;&#x5982;&#x6211;&#x4EEC;&#x521A;&#x521A;&#x8BA8;&#x8BBA;&#x7684;&#xFF0C;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x7684; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x552F;&#x4E00;&#x6807;&#x8BC6;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;&#x81EA;&#x5B9A;&#x4E49;&#x7684; <code>_id</code> &#x503C;&#xFF0C;&#x6216;&#x8005;&#x8BA9; <code>index</code> API &#x81EA;&#x52A8;&#x751F;&#x6210;&#x3002;</p>
<p><strong>&#x4F7F;&#x7528;&#x81EA;&#x5B9A;&#x4E49;&#x7684; ID</strong></p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x6587;&#x6863;&#x6709;&#x4E00;&#x4E2A;&#x81EA;&#x7136;&#x7684; &#x6807;&#x8BC6;&#x7B26; &#xFF08;&#x4F8B;&#x5982;&#xFF0C;&#x4E00;&#x4E2A; <code>user_account</code> &#x5B57;&#x6BB5;&#x6216;&#x5176;&#x4ED6;&#x6807;&#x8BC6;&#x6587;&#x6863;&#x7684;&#x503C;&#xFF09;&#xFF0C;&#x4F60;&#x5E94;&#x8BE5;&#x4F7F;&#x7528;&#x5982;&#x4E0B;&#x65B9;&#x5F0F;&#x7684; <code>index</code> API &#x5E76;&#x63D0;&#x4F9B;&#x4F60;&#x81EA;&#x5DF1; <code>_id</code> &#xFF1A;</p>
<pre><code class="lang-js">PUT /{index}/{type}/{id}
{
  <span class="hljs-string">&quot;field&quot;</span>: <span class="hljs-string">&quot;value&quot;</span>,
  ...
}
</code></pre>
<p>&#x4E3E;&#x4E2A;&#x4F8B;&#x5B50;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x7684;&#x7D22;&#x5F15;&#x79F0;&#x4E3A; <code>website</code> &#xFF0C;&#x7C7B;&#x578B;&#x79F0;&#x4E3A; <code>blog</code> &#xFF0C;&#x5E76;&#x4E14;&#x9009;&#x62E9; <code>123</code> &#x4F5C;&#x4E3A; ID &#xFF0C;&#x90A3;&#x4E48;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x5E94;&#x8BE5;&#x662F;&#x4E0B;&#x9762;&#x8FD9;&#x6837;&#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">123</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>,
  <span class="hljs-string">&quot;date&quot;</span>:  <span class="hljs-string">&quot;2014/01/01&quot;</span>
}
</code></pre>
<p>Elasticsearch &#x54CD;&#x5E94;&#x4F53;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;_index&quot;</span>:    <span class="hljs-string">&quot;website&quot;</span>,
   <span class="hljs-string">&quot;_type&quot;</span>:     <span class="hljs-string">&quot;blog&quot;</span>,
   <span class="hljs-string">&quot;_id&quot;</span>:       <span class="hljs-string">&quot;123&quot;</span>,
   <span class="hljs-string">&quot;_version&quot;</span>:  <span class="hljs-number">1</span>,
   <span class="hljs-string">&quot;created&quot;</span>:   <span class="hljs-literal">true</span>
}
</code></pre>
<p>&#x8BE5;&#x54CD;&#x5E94;&#x8868;&#x660E;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x6210;&#x529F;&#x521B;&#x5EFA;&#xFF0C;&#x8BE5;&#x7D22;&#x5F15;&#x5305;&#x62EC; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x5143;&#x6570;&#x636E;&#xFF0C; &#x4EE5;&#x53CA;&#x4E00;&#x4E2A;&#x65B0;&#x5143;&#x7D20;&#xFF1A; <code>_version</code> &#x3002;</p>
<p>&#x5728; Elasticsearch &#x4E2D;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x6709;&#x4E00;&#x4E2A;&#x7248;&#x672C;&#x53F7;&#x3002;&#x5F53;&#x6BCF;&#x6B21;&#x5BF9;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#x65F6;&#xFF08;&#x5305;&#x62EC;&#x5220;&#x9664;&#xFF09;&#xFF0C; <code>_version</code> &#x7684;&#x503C;&#x4F1A;&#x9012;&#x589E;&#x3002; &#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/version-control.html" target="_blank">&#x5904;&#x7406;&#x51B2;&#x7A81;</a> &#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x8BA8;&#x8BBA;&#x4E86;&#x600E;&#x6837;&#x4F7F;&#x7528; <code>_version</code> &#x53F7;&#x7801;&#x786E;&#x4FDD;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x4FEE;&#x6539;&#x4E0D;&#x4F1A;&#x8986;&#x76D6;&#x53E6;&#x4E00;&#x90E8;&#x5206;&#x6240;&#x505A;&#x7684;&#x4FEE;&#x6539;&#x3002;</p>
<p><strong>Autogenerating IDs</strong></p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x6570;&#x636E;&#x6CA1;&#x6709;&#x81EA;&#x7136;&#x7684; ID&#xFF0C; Elasticsearch &#x53EF;&#x4EE5;&#x5E2E;&#x6211;&#x4EEC;&#x81EA;&#x52A8;&#x751F;&#x6210; ID &#x3002; &#x8BF7;&#x6C42;&#x7684;&#x7ED3;&#x6784;&#x8C03;&#x6574;&#x4E3A;&#xFF1A; &#x4E0D;&#x518D;&#x4F7F;&#x7528;<code>PUT</code> &#x8C13;&#x8BCD;(&#x201C;&#x4F7F;&#x7528;&#x8FD9;&#x4E2A; URL &#x5B58;&#x50A8;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#x201D;)&#xFF0C; &#x800C;&#x662F;&#x4F7F;&#x7528; <code>POST</code> &#x8C13;&#x8BCD;(&#x201C;&#x5B58;&#x50A8;&#x6587;&#x6863;&#x5728;&#x8FD9;&#x4E2A; URL &#x547D;&#x540D;&#x7A7A;&#x95F4;&#x4E0B;&#x201D;)&#x3002;</p>
<p>&#x73B0;&#x5728;&#x8BE5; URL &#x53EA;&#x9700;&#x5305;&#x542B; <code>_index</code> &#x548C; <code>_type</code> :</p>
<pre><code class="lang-js">POST /website/blog/
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My second blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Still trying this out...&quot;</span>,
  <span class="hljs-string">&quot;date&quot;</span>:  <span class="hljs-string">&quot;2014/01/01&quot;</span>
}
</code></pre>
<p>&#x9664;&#x4E86; <code>_id</code> &#x662F; Elasticsearch &#x81EA;&#x52A8;&#x751F;&#x6210;&#x7684;&#xFF0C;&#x54CD;&#x5E94;&#x7684;&#x5176;&#x4ED6;&#x90E8;&#x5206;&#x548C;&#x524D;&#x9762;&#x7684;&#x7C7B;&#x4F3C;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;_index&quot;</span>:    <span class="hljs-string">&quot;website&quot;</span>,
   <span class="hljs-string">&quot;_type&quot;</span>:     <span class="hljs-string">&quot;blog&quot;</span>,
   <span class="hljs-string">&quot;_id&quot;</span>:       <span class="hljs-string">&quot;AVFgSgVHUP18jI2wRx0w&quot;</span>,
   <span class="hljs-string">&quot;_version&quot;</span>:  <span class="hljs-number">1</span>,
   <span class="hljs-string">&quot;created&quot;</span>:   <span class="hljs-literal">true</span>
}
</code></pre>
<p>&#x81EA;&#x52A8;&#x751F;&#x6210;&#x7684; ID &#x662F; URL-safe&#x3001; &#x57FA;&#x4E8E; Base64 &#x7F16;&#x7801;&#x4E14;&#x957F;&#x5EA6;&#x4E3A;20&#x4E2A;&#x5B57;&#x7B26;&#x7684; GUID &#x5B57;&#x7B26;&#x4E32;&#x3002; &#x8FD9;&#x4E9B; GUID &#x5B57;&#x7B26;&#x4E32;&#x7531;&#x53EF;&#x4FEE;&#x6539;&#x7684; FlakeID &#x6A21;&#x5F0F;&#x751F;&#x6210;&#xFF0C;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x5141;&#x8BB8;&#x591A;&#x4E2A;&#x8282;&#x70B9;&#x5E76;&#x884C;&#x751F;&#x6210;&#x552F;&#x4E00; ID &#xFF0C;&#x4E14;&#x4E92;&#x76F8;&#x4E4B;&#x95F4;&#x7684;&#x51B2;&#x7A81;&#x6982;&#x7387;&#x51E0;&#x4E4E;&#x4E3A;&#x96F6;&#x3002;</p>
<h3 id="&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;"><a name="&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x53D6;&#x56DE;&#x4E00;&#x4E2A;&#x6587;&#x6863;</h3>
<p>&#x4E3A;&#x4E86;&#x4ECE; Elasticsearch &#x4E2D;&#x68C0;&#x7D22;&#x51FA;&#x6587;&#x6863; &#xFF0C;&#x6211;&#x4EEC;&#x4ECD;&#x7136;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x7684; <code>_index</code> , <code>_type</code> , &#x548C; <code>_id</code> &#xFF0C;&#x4F46;&#x662F; HTTP &#x8C13;&#x8BCD;&#x66F4;&#x6539;&#x4E3A; <code>GET</code> :</p>
<pre><code class="lang-sh">GET /website/blog/123?pretty
</code></pre>
<p>&#x54CD;&#x5E94;&#x4F53;&#x5305;&#x62EC;&#x76EE;&#x524D;&#x5DF2;&#x7ECF;&#x719F;&#x6089;&#x4E86;&#x7684;&#x5143;&#x6570;&#x636E;&#x5143;&#x7D20;&#xFF0C;&#x518D;&#x52A0;&#x4E0A; <code>_source</code> &#x5B57;&#x6BB5;&#xFF0C;&#x8FD9;&#x4E2A;&#x5B57;&#x6BB5;&#x5305;&#x542B;&#x6211;&#x4EEC;&#x7D22;&#x5F15;&#x6570;&#x636E;&#x65F6;&#x53D1;&#x9001;&#x7ED9; Elasticsearch &#x7684;&#x539F;&#x59CB; JSON &#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;123&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
  <span class="hljs-string">&quot;_source&quot;</span> :  {
      <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
      <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>,
      <span class="hljs-string">&quot;date&quot;</span>:  <span class="hljs-string">&quot;2014/01/01&quot;</span>
  }
}
</code></pre>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x5728;&#x8BF7;&#x6C42;&#x7684;&#x67E5;&#x8BE2;&#x4E32;&#x53C2;&#x6570;&#x4E2D;&#x52A0;&#x4E0A; <code>pretty</code> &#x53C2;&#x6570;&#xFF0C; &#x6B63;&#x5982;&#x524D;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x770B;&#x5230;&#x7684;&#xFF0C;&#x8FD9;&#x5C06;&#x4F1A;&#x8C03;&#x7528; Elasticsearch &#x7684; <em>pretty-print</em> &#x529F;&#x80FD;&#xFF0C;&#x8BE5;&#x529F;&#x80FD; &#x4F7F;&#x5F97; JSON &#x54CD;&#x5E94;&#x4F53;&#x66F4;&#x52A0;&#x53EF;&#x8BFB;&#x3002;&#x4F46;&#x662F;&#xFF0C; <code>_source</code>&#x5B57;&#x6BB5;&#x4E0D;&#x80FD;&#x88AB;&#x683C;&#x5F0F;&#x5316;&#x6253;&#x5370;&#x51FA;&#x6765;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x6211;&#x4EEC;&#x5F97;&#x5230;&#x7684; <code>_source</code> &#x5B57;&#x6BB5;&#x4E2D;&#x7684; JSON &#x4E32;&#xFF0C;&#x521A;&#x597D;&#x662F;&#x548C;&#x6211;&#x4EEC;&#x4F20;&#x7ED9;&#x5B83;&#x7684;&#x4E00;&#x6837;&#x3002;</p>
</blockquote>
<p><code>GET</code> &#x8BF7;&#x6C42;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#x5305;&#x62EC; <code>{&quot;found&quot;: true}</code> &#xFF0C;&#x8FD9;&#x8BC1;&#x5B9E;&#x4E86;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x88AB;&#x627E;&#x5230;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x8BF7;&#x6C42;&#x4E00;&#x4E2A;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x6211;&#x4EEC;&#x4ECD;&#x65E7;&#x4F1A;&#x5F97;&#x5230;&#x4E00;&#x4E2A; JSON &#x54CD;&#x5E94;&#x4F53;&#xFF0C;&#x4F46;&#x662F; <code>found</code> &#x5C06;&#x4F1A;&#x662F; <code>false</code> &#x3002; &#x6B64;&#x5916;&#xFF0C; HTTP &#x54CD;&#x5E94;&#x7801;&#x5C06;&#x4F1A;&#x662F; <code>404 Not Found</code> &#xFF0C;&#x800C;&#x4E0D;&#x662F; <code>200 OK</code> &#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4F20;&#x9012; <code>-i</code> &#x53C2;&#x6570;&#x7ED9; <code>curl</code> &#x547D;&#x4EE4;&#xFF0C;&#x8BE5;&#x53C2;&#x6570; &#x80FD;&#x591F;&#x663E;&#x793A;&#x54CD;&#x5E94;&#x7684;&#x5934;&#x90E8;&#xFF1A;</p>
<pre><code class="lang-sh">curl -i -XGET http://localhost:9200/website/blog/124?pretty
</code></pre>
<p>&#x663E;&#x793A;&#x54CD;&#x5E94;&#x5934;&#x90E8;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#x73B0;&#x5728;&#x7C7B;&#x4F3C;&#x8FD9;&#x6837;&#xFF1A;</p>
<pre><code class="lang-js">HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">404</span> Not Found
Content-Type: application/json; charset=UTF<span class="hljs-number">-8</span>
Content-Length: <span class="hljs-number">83</span>

{
  <span class="hljs-string">&quot;_index&quot;</span> : <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :  <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :    <span class="hljs-string">&quot;124&quot;</span>,
  <span class="hljs-string">&quot;found&quot;</span> :  <span class="hljs-literal">false</span>
}
</code></pre>
<p><strong>&#x8FD4;&#x56DE;&#x6587;&#x6863;&#x7684;&#x4E00;&#x90E8;&#x5206;</strong></p>
<p>&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C; <code>GET</code> &#x8BF7;&#x6C42; &#x4F1A;&#x8FD4;&#x56DE;&#x6574;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#x6B63;&#x5982;&#x5B58;&#x50A8;&#x5728; <code>_source</code> &#x5B57;&#x6BB5;&#x4E2D;&#x7684;&#x4E00;&#x6837;&#x3002;&#x4F46;&#x662F;&#x4E5F;&#x8BB8;&#x4F60;&#x53EA;&#x5BF9;&#x5176;&#x4E2D;&#x7684; <code>title</code> &#x5B57;&#x6BB5;&#x611F;&#x5174;&#x8DA3;&#x3002;&#x5355;&#x4E2A;&#x5B57;&#x6BB5;&#x80FD;&#x7528; <code>_source</code> &#x53C2;&#x6570;&#x8BF7;&#x6C42;&#x5F97;&#x5230;&#xFF0C;&#x591A;&#x4E2A;&#x5B57;&#x6BB5;&#x4E5F;&#x80FD;&#x4F7F;&#x7528;&#x9017;&#x53F7;&#x5206;&#x9694;&#x7684;&#x5217;&#x8868;&#x6765;&#x6307;&#x5B9A;&#x3002;</p>
<pre><code class="lang-sh">GET /website/blog/123?_<span class="hljs-built_in">source</span>=title,text
</code></pre>
<p>&#x8BE5; <code>_source</code> &#x5B57;&#x6BB5;&#x73B0;&#x5728;&#x5305;&#x542B;&#x7684;&#x53EA;&#x662F;&#x6211;&#x4EEC;&#x8BF7;&#x6C42;&#x7684;&#x90A3;&#x4E9B;&#x5B57;&#x6BB5;&#xFF0C;&#x5E76;&#x4E14;&#x5DF2;&#x7ECF;&#x5C06; <code>date</code> &#x5B57;&#x6BB5;&#x8FC7;&#x6EE4;&#x6389;&#x4E86;&#x3002;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;123&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;found&quot;</span> :   <span class="hljs-literal">true</span>,
  <span class="hljs-string">&quot;_source&quot;</span> : {
      <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span> ,
      <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>
  }
}
</code></pre>
<p>&#x6216;&#x8005;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x53EA;&#x60F3;&#x5F97;&#x5230; <code>_source</code> &#x5B57;&#x6BB5;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x4EFB;&#x4F55;&#x5143;&#x6570;&#x636E;&#xFF0C;&#x4F60;&#x80FD;&#x4F7F;&#x7528; <code>_source</code> &#x7AEF;&#x70B9;&#xFF1A;</p>
<pre><code class="lang-sh">GET /website/blog/123/_<span class="hljs-built_in">source</span>
</code></pre>
<p>&#x90A3;&#x4E48;&#x8FD4;&#x56DE;&#x7684;&#x7684;&#x5185;&#x5BB9;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
   <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>,
   <span class="hljs-string">&quot;date&quot;</span>:  <span class="hljs-string">&quot;2014/01/01&quot;</span>
}
</code></pre>
<h3 id="&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;"><a name="&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;" class="anchor-navigation-ex-anchor" href="#&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x68C0;&#x67E5;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728;</h3>
<p>&#x5982;&#x679C;&#x53EA;&#x60F3;&#x68C0;&#x67E5;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x662F;&#x5426;&#x5B58;&#x5728; --&#x6839;&#x672C;&#x4E0D;&#x60F3;&#x5173;&#x5FC3;&#x5185;&#x5BB9;--&#x90A3;&#x4E48;&#x7528; <code>HEAD</code> &#x65B9;&#x6CD5;&#x6765;&#x4EE3;&#x66FF; <code>GET</code> &#x65B9;&#x6CD5;&#x3002; <code>HEAD</code> &#x8BF7;&#x6C42;&#x6CA1;&#x6709;&#x8FD4;&#x56DE;&#x4F53;&#xFF0C;&#x53EA;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A; HTTP &#x8BF7;&#x6C42;&#x62A5;&#x5934;&#xFF1A;</p>
<pre><code class="lang-js">curl -i -XHEAD http:<span class="hljs-comment">//localhost:9200/website/blog/123</span>
</code></pre>
<p>&#x5982;&#x679C;&#x6587;&#x6863;&#x5B58;&#x5728;&#xFF0C; Elasticsearch &#x5C06;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A; <code>200 ok</code> &#x7684;&#x72B6;&#x6001;&#x7801;&#xFF1A;</p>
<pre><code class="lang-js">HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">200</span> OK
Content-Type: text/plain; charset=UTF<span class="hljs-number">-8</span>
Content-Length: <span class="hljs-number">0</span>
</code></pre>
<p>&#x82E5;&#x6587;&#x6863;&#x4E0D;&#x5B58;&#x5728;&#xFF0C; Elasticsearch &#x5C06;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A; <code>404 Not Found</code> &#x7684;&#x72B6;&#x6001;&#x7801;&#xFF1A;</p>
<pre><code class="lang-js">curl -i -XHEAD http:<span class="hljs-comment">//localhost:9200/website/blog/124</span>
HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">404</span> Not Found
Content-Type: text/plain; charset=UTF<span class="hljs-number">-8</span>
Content-Length: <span class="hljs-number">0</span>
</code></pre>
<p>&#x5F53;&#x7136;&#xFF0C;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x4EC5;&#x4EC5;&#x662F;&#x5728;&#x68C0;&#x67E5;&#x7684;&#x65F6;&#x5019;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x5E76;&#x4E0D;&#x610F;&#x5473;&#x7740;&#x4E00;&#x6BEB;&#x79D2;&#x4E4B;&#x540E;&#x5B83;&#x4E5F;&#x4E0D;&#x5B58;&#x5728;&#xFF1A;&#x4E5F;&#x8BB8;&#x540C;&#x65F6;&#x6B63;&#x597D;&#x53E6;&#x4E00;&#x4E2A;&#x8FDB;&#x7A0B;&#x5C31;&#x521B;&#x5EFA;&#x4E86;&#x8BE5;&#x6587;&#x6863;&#x3002;</p>
<h3 id="&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;"><a name="&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;</h3>
<p>&#x5728; Elasticsearch &#x4E2D;&#x6587;&#x6863;&#x662F; <em>&#x4E0D;&#x53EF;&#x6539;&#x53D8;</em> &#x7684;&#xFF0C;&#x4E0D;&#x80FD;&#x4FEE;&#x6539;&#x5B83;&#x4EEC;&#x3002; &#x76F8;&#x53CD;&#xFF0C;&#x5982;&#x679C;&#x60F3;&#x8981;&#x66F4;&#x65B0;&#x73B0;&#x6709;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x9700;&#x8981; <em>&#x91CD;&#x5EFA;&#x7D22;&#x5F15;</em>&#x6216;&#x8005;&#x8FDB;&#x884C;&#x66FF;&#x6362;&#xFF0C; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x76F8;&#x540C;&#x7684; <code>index</code> API &#x8FDB;&#x884C;&#x5B9E;&#x73B0;&#xFF0C;&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-doc.html" target="_blank">&#x7D22;&#x5F15;&#x6587;&#x6863;</a> &#x4E2D;&#x5DF2;&#x7ECF;&#x8FDB;&#x884C;&#x4E86;&#x8BA8;&#x8BBA;&#x3002;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">123</span>
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;I am starting to get the hang of this...&quot;</span>,
  <span class="hljs-string">&quot;date&quot;</span>:  <span class="hljs-string">&quot;2014/01/02&quot;</span>
}
</code></pre>
<p>&#x5728;&#x54CD;&#x5E94;&#x4F53;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x80FD;&#x770B;&#x5230; Elasticsearch &#x5DF2;&#x7ECF;&#x589E;&#x52A0;&#x4E86; <code>_version</code> &#x5B57;&#x6BB5;&#x503C;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;123&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">2</span>,
  <span class="hljs-string">&quot;created&quot;</span>:   <span class="hljs-literal">false</span>                 &lt;<span class="hljs-number">1</span>&gt;
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>created</code> &#x6807;&#x5FD7;&#x8BBE;&#x7F6E;&#x6210; <code>false</code> &#xFF0C;&#x662F;&#x56E0;&#x4E3A;&#x76F8;&#x540C;&#x7684;&#x7D22;&#x5F15;&#x3001;&#x7C7B;&#x578B;&#x548C; ID &#x7684;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x3002;   </p>
</blockquote>
<p>&#x5728;&#x5185;&#x90E8;&#xFF0C;Elasticsearch &#x5DF2;&#x5C06;&#x65E7;&#x6587;&#x6863;&#x6807;&#x8BB0;&#x4E3A;&#x5DF2;&#x5220;&#x9664;&#xFF0C;&#x5E76;&#x589E;&#x52A0;&#x4E00;&#x4E2A;&#x5168;&#x65B0;&#x7684;&#x6587;&#x6863;&#x3002; &#x5C3D;&#x7BA1;&#x4F60;&#x4E0D;&#x80FD;&#x518D;&#x5BF9;&#x65E7;&#x7248;&#x672C;&#x7684;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x8BBF;&#x95EE;&#xFF0C;&#x4F46;&#x5B83;&#x5E76;&#x4E0D;&#x4F1A;&#x7ACB;&#x5373;&#x6D88;&#x5931;&#x3002;&#x5F53;&#x7EE7;&#x7EED;&#x7D22;&#x5F15;&#x66F4;&#x591A;&#x7684;&#x6570;&#x636E;&#xFF0C;Elasticsearch &#x4F1A;&#x5728;&#x540E;&#x53F0;&#x6E05;&#x7406;&#x8FD9;&#x4E9B;&#x5DF2;&#x5220;&#x9664;&#x6587;&#x6863;&#x3002;</p>
<p>&#x5728;&#x672C;&#x7AE0;&#x7684;&#x540E;&#x9762;&#x90E8;&#x5206;&#xFF0C;&#x6211;&#x4EEC;&#x4F1A;&#x4ECB;&#x7ECD; <code>update</code> API, &#x8FD9;&#x4E2A; API &#x53EF;&#x4EE5;&#x7528;&#x4E8E; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/partial-updates.html" target="_blank">partial updates to a document</a> &#x3002; &#x867D;&#x7136;&#x5B83;&#x4F3C;&#x4E4E;&#x5BF9;&#x6587;&#x6863;&#x76F4;&#x63A5;&#x8FDB;&#x884C;&#x4E86;&#x4FEE;&#x6539;&#xFF0C;&#x4F46;&#x5B9E;&#x9645;&#x4E0A; Elasticsearch &#x6309;&#x524D;&#x8FF0;&#x5B8C;&#x5168;&#x76F8;&#x540C;&#x65B9;&#x5F0F;&#x6267;&#x884C;&#x4EE5;&#x4E0B;&#x8FC7;&#x7A0B;&#xFF1A;</p>
<ol>
<li>&#x4ECE;&#x65E7;&#x6587;&#x6863;&#x6784;&#x5EFA; JSON</li>
<li>&#x66F4;&#x6539;&#x8BE5; JSON</li>
<li>&#x5220;&#x9664;&#x65E7;&#x6587;&#x6863;</li>
<li>&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x65B0;&#x6587;&#x6863;</li>
</ol>
<p>&#x552F;&#x4E00;&#x7684;&#x533A;&#x522B;&#x5728;&#x4E8E;, <code>update</code> API &#x4EC5;&#x4EC5;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x5BA2;&#x6237;&#x7AEF;&#x8BF7;&#x6C42;&#x6765;&#x5B9E;&#x73B0;&#x8FD9;&#x4E9B;&#x6B65;&#x9AA4;&#xFF0C;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x5355;&#x72EC;&#x7684; <code>get</code> &#x548C; <code>index</code>&#x8BF7;&#x6C42;&#x3002;</p>
<h3 id="&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;"><a name="&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;</h3>
<p>&#x5F53;&#x6211;&#x4EEC;&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#xFF0C; &#x600E;&#x4E48;&#x786E;&#x8BA4;&#x6211;&#x4EEC;&#x6B63;&#x5728;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5B8C;&#x5168;&#x65B0;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x8986;&#x76D6;&#x73B0;&#x6709;&#x7684;&#x5462;&#xFF1F;</p>
<p>&#x8BF7;&#x8BB0;&#x4F4F;&#xFF0C; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x7684;&#x7EC4;&#x5408;&#x53EF;&#x4EE5;&#x552F;&#x4E00;&#x6807;&#x8BC6;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002;&#x6240;&#x4EE5;&#xFF0C;&#x786E;&#x4FDD;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x6587;&#x6863;&#x7684;&#x6700;&#x7B80;&#x5355;&#x529E;&#x6CD5;&#x662F;&#xFF0C;&#x4F7F;&#x7528;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x7684; <code>POST</code> &#x5F62;&#x5F0F;&#x8BA9; Elasticsearch &#x81EA;&#x52A8;&#x751F;&#x6210;&#x552F;&#x4E00; <code>_id</code> :</p>
<pre><code class="lang-js">POST /website/blog/
{ ... }
</code></pre>
<p>&#x7136;&#x800C;&#xFF0C;&#x5982;&#x679C;&#x5DF2;&#x7ECF;&#x6709;&#x81EA;&#x5DF1;&#x7684; <code>_id</code> &#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x544A;&#x8BC9; Elasticsearch &#xFF0C;&#x53EA;&#x6709;&#x5728;&#x76F8;&#x540C;&#x7684; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x4E0D;&#x5B58;&#x5728;&#x65F6;&#x624D;&#x63A5;&#x53D7;&#x6211;&#x4EEC;&#x7684;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x3002;&#x8FD9;&#x91CC;&#x6709;&#x4E24;&#x79CD;&#x65B9;&#x5F0F;&#xFF0C;&#x4ED6;&#x4EEC;&#x505A;&#x7684;&#x5B9E;&#x9645;&#x662F;&#x76F8;&#x540C;&#x7684;&#x4E8B;&#x60C5;&#x3002;&#x4F7F;&#x7528;&#x54EA;&#x79CD;&#xFF0C;&#x53D6;&#x51B3;&#x4E8E;&#x54EA;&#x79CD;&#x4F7F;&#x7528;&#x8D77;&#x6765;&#x66F4;&#x65B9;&#x4FBF;&#x3002;</p>
<p>&#x7B2C;&#x4E00;&#x79CD;&#x65B9;&#x6CD5;&#x4F7F;&#x7528; <code>op_type</code> &#x67E5;&#x8BE2; -&#x5B57;&#x7B26;&#x4E32;&#x53C2;&#x6570;&#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">123</span>?op_type=create
{ ... }
</code></pre>
<p>&#x7B2C;&#x4E8C;&#x79CD;&#x65B9;&#x6CD5;&#x662F;&#x5728; URL &#x672B;&#x7AEF;&#x4F7F;&#x7528; <code>/_create</code> :</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">123</span>/_create
{ ... }
</code></pre>
<p>&#x5982;&#x679C;&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;&#x7684;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#x6267;&#x884C;&#xFF0C;Elasticsearch &#x4F1A;&#x8FD4;&#x56DE;&#x5143;&#x6570;&#x636E;&#x548C;&#x4E00;&#x4E2A; <code>201 Created</code> &#x7684; HTTP &#x54CD;&#x5E94;&#x7801;&#x3002;</p>
<p>&#x53E6;&#x4E00;&#x65B9;&#x9762;&#xFF0C;&#x5982;&#x679C;&#x5177;&#x6709;&#x76F8;&#x540C;&#x7684; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x7684;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#xFF0C;Elasticsearch &#x5C06;&#x4F1A;&#x8FD4;&#x56DE; <code>409 Conflict</code> &#x54CD;&#x5E94;&#x7801;&#xFF0C;&#x4EE5;&#x53CA;&#x5982;&#x4E0B;&#x7684;&#x9519;&#x8BEF;&#x4FE1;&#x606F;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;error&quot;</span>: {
      <span class="hljs-string">&quot;root_cause&quot;</span>: [
         {
            <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;document_already_exists_exception&quot;</span>,
            <span class="hljs-string">&quot;reason&quot;</span>: <span class="hljs-string">&quot;[blog][123]: document already exists&quot;</span>,
            <span class="hljs-string">&quot;shard&quot;</span>: <span class="hljs-string">&quot;0&quot;</span>,
            <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>
         }
      ],
      <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;document_already_exists_exception&quot;</span>,
      <span class="hljs-string">&quot;reason&quot;</span>: <span class="hljs-string">&quot;[blog][123]: document already exists&quot;</span>,
      <span class="hljs-string">&quot;shard&quot;</span>: <span class="hljs-string">&quot;0&quot;</span>,
      <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>
   },
   <span class="hljs-string">&quot;status&quot;</span>: <span class="hljs-number">409</span>
}
</code></pre>
<h3 id="&#x5220;&#x9664;&#x6587;&#x6863;"><a name="&#x5220;&#x9664;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x5220;&#x9664;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5220;&#x9664;&#x6587;&#x6863;</h3>
<p>&#x5220;&#x9664;&#x6587;&#x6863; &#x7684;&#x8BED;&#x6CD5;&#x548C;&#x6211;&#x4EEC;&#x6240;&#x77E5;&#x9053;&#x7684;&#x89C4;&#x5219;&#x76F8;&#x540C;&#xFF0C;&#x53EA;&#x662F; &#x4F7F;&#x7528; <code>DELETE</code> &#x65B9;&#x6CD5;&#xFF1A;</p>
<pre><code class="lang-js">DELETE /website/blog/<span class="hljs-number">123</span>
</code></pre>
<p>&#x5982;&#x679C;&#x627E;&#x5230;&#x8BE5;&#x6587;&#x6863;&#xFF0C;Elasticsearch &#x5C06;&#x8981;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A; <code>200 ok</code> &#x7684; HTTP &#x54CD;&#x5E94;&#x7801;&#xFF0C;&#x548C;&#x4E00;&#x4E2A;&#x7C7B;&#x4F3C;&#x4EE5;&#x4E0B;&#x7ED3;&#x6784;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#x3002;&#x6CE8;&#x610F;&#xFF0C;&#x5B57;&#x6BB5; <code>_version</code> &#x503C;&#x5DF2;&#x7ECF;&#x589E;&#x52A0;:</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;123&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">3</span>
}
</code></pre>
<p>&#x5982;&#x679C;&#x6587;&#x6863;&#x6CA1;&#x6709; &#x627E;&#x5230;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5F97;&#x5230; <code>404 Not Found</code> &#x7684;&#x54CD;&#x5E94;&#x7801;&#x548C;&#x7C7B;&#x4F3C;&#x8FD9;&#x6837;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">false</span>,
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;123&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">4</span>
}
</code></pre>
<p>&#x5373;&#x4F7F;&#x6587;&#x6863;&#x4E0D;&#x5B58;&#x5728;&#xFF08; <code>Found</code> &#x662F; <code>false</code> &#xFF09;&#xFF0C; <code>_version</code> &#x503C;&#x4ECD;&#x7136;&#x4F1A;&#x589E;&#x52A0;&#x3002;&#x8FD9;&#x662F; Elasticsearch &#x5185;&#x90E8;&#x8BB0;&#x5F55;&#x672C;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x7528;&#x6765;&#x786E;&#x4FDD;&#x8FD9;&#x4E9B;&#x6539;&#x53D8;&#x5728;&#x8DE8;&#x591A;&#x8282;&#x70B9;&#x65F6;&#x4EE5;&#x6B63;&#x786E;&#x7684;&#x987A;&#x5E8F;&#x6267;&#x884C;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x6B63;&#x5982;&#x5DF2;&#x7ECF;&#x5728;<a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/update-doc.html" target="_blank">&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;</a>&#x4E2D;&#x63D0;&#x5230;&#x7684;&#xFF0C;&#x5220;&#x9664;&#x6587;&#x6863;&#x4E0D;&#x4F1A;&#x7ACB;&#x5373;&#x5C06;&#x6587;&#x6863;&#x4ECE;&#x78C1;&#x76D8;&#x4E2D;&#x5220;&#x9664;&#xFF0C;&#x53EA;&#x662F;&#x5C06;&#x6587;&#x6863;&#x6807;&#x8BB0;&#x4E3A;&#x5DF2;&#x5220;&#x9664;&#x72B6;&#x6001;&#x3002;&#x968F;&#x7740;&#x4F60;&#x4E0D;&#x65AD;&#x7684;&#x7D22;&#x5F15;&#x66F4;&#x591A;&#x7684;&#x6570;&#x636E;&#xFF0C;Elasticsearch &#x5C06;&#x4F1A;&#x5728;&#x540E;&#x53F0;&#x6E05;&#x7406;&#x6807;&#x8BB0;&#x4E3A;&#x5DF2;&#x5220;&#x9664;&#x7684;&#x6587;&#x6863;&#x3002;</p>
</blockquote>
<h3 id="&#x5904;&#x7406;&#x51B2;&#x7A81;"><a name="&#x5904;&#x7406;&#x51B2;&#x7A81;" class="anchor-navigation-ex-anchor" href="#&#x5904;&#x7406;&#x51B2;&#x7A81;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x5904;&#x7406;&#x51B2;&#x7A81;</h3>
<p>&#x5F53;&#x6211;&#x4EEC;&#x4F7F;&#x7528; <code>index</code> API &#x66F4;&#x65B0;&#x6587;&#x6863; &#xFF0C;&#x53EF;&#x4EE5;&#x4E00;&#x6B21;&#x6027;&#x8BFB;&#x53D6;&#x539F;&#x59CB;&#x6587;&#x6863;&#xFF0C;&#x505A;&#x6211;&#x4EEC;&#x7684;&#x4FEE;&#x6539;&#xFF0C;&#x7136;&#x540E;&#x91CD;&#x65B0;&#x7D22;&#x5F15; <em>&#x6574;&#x4E2A;&#x6587;&#x6863;</em> &#x3002; &#x6700;&#x8FD1;&#x7684;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#x5C06;&#x83B7;&#x80DC;&#xFF1A;&#x65E0;&#x8BBA;&#x6700;&#x540E;&#x54EA;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x88AB;&#x7D22;&#x5F15;&#xFF0C;&#x90FD;&#x5C06;&#x88AB;&#x552F;&#x4E00;&#x5B58;&#x50A8;&#x5728; Elasticsearch &#x4E2D;&#x3002;&#x5982;&#x679C;&#x5176;&#x4ED6;&#x4EBA;&#x540C;&#x65F6;&#x66F4;&#x6539;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x4ED6;&#x4EEC;&#x7684;&#x66F4;&#x6539;&#x5C06;&#x4E22;&#x5931;&#x3002;</p>
<p>&#x5F88;&#x591A;&#x65F6;&#x5019;&#x8FD9;&#x662F;&#x6CA1;&#x6709;&#x95EE;&#x9898;&#x7684;&#x3002;&#x4E5F;&#x8BB8;&#x6211;&#x4EEC;&#x7684;&#x4E3B;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x662F;&#x4E00;&#x4E2A;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x662F;&#x5C06;&#x6570;&#x636E;&#x590D;&#x5236;&#x5230; Elasticsearch &#x4E2D;&#x5E76;&#x4F7F;&#x5176;&#x53EF;&#x88AB;&#x641C;&#x7D22;&#x3002; &#x4E5F;&#x8BB8;&#x4E24;&#x4E2A;&#x4EBA;&#x540C;&#x65F6;&#x66F4;&#x6539;&#x76F8;&#x540C;&#x7684;&#x6587;&#x6863;&#x7684;&#x51E0;&#x7387;&#x5F88;&#x5C0F;&#x3002;&#x6216;&#x8005;&#x5BF9;&#x4E8E;&#x6211;&#x4EEC;&#x7684;&#x4E1A;&#x52A1;&#x6765;&#x8BF4;&#x5076;&#x5C14;&#x4E22;&#x5931;&#x66F4;&#x6539;&#x5E76;&#x4E0D;&#x662F;&#x5F88;&#x4E25;&#x91CD;&#x7684;&#x95EE;&#x9898;&#x3002;</p>
<p>&#x4F46;&#x6709;&#x65F6;&#x4E22;&#x5931;&#x4E86;&#x4E00;&#x4E2A;&#x53D8;&#x66F4;&#x5C31;&#x662F; <em>&#x975E;&#x5E38;&#x4E25;&#x91CD;&#x7684;</em> &#x3002;&#x8BD5;&#x60F3;&#x6211;&#x4EEC;&#x4F7F;&#x7528; Elasticsearch &#x5B58;&#x50A8;&#x6211;&#x4EEC;&#x7F51;&#x4E0A;&#x5546;&#x57CE;&#x5546;&#x54C1;&#x5E93;&#x5B58;&#x7684;&#x6570;&#x91CF;&#xFF0C; &#x6BCF;&#x6B21;&#x6211;&#x4EEC;&#x5356;&#x4E00;&#x4E2A;&#x5546;&#x54C1;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x6211;&#x4EEC;&#x5728; Elasticsearch &#x4E2D;&#x5C06;&#x5E93;&#x5B58;&#x6570;&#x91CF;&#x51CF;&#x5C11;&#x3002;</p>
<p>&#x6709;&#x4E00;&#x5929;&#xFF0C;&#x7BA1;&#x7406;&#x5C42;&#x51B3;&#x5B9A;&#x505A;&#x4E00;&#x6B21;&#x4FC3;&#x9500;&#x3002;&#x7A81;&#x7136;&#x5730;&#xFF0C;&#x6211;&#x4EEC;&#x4E00;&#x79D2;&#x8981;&#x5356;&#x597D;&#x51E0;&#x4E2A;&#x5546;&#x54C1;&#x3002; &#x5047;&#x8BBE;&#x6709;&#x4E24;&#x4E2A; web &#x7A0B;&#x5E8F;&#x5E76;&#x884C;&#x8FD0;&#x884C;&#xFF0C;&#x6BCF;&#x4E00;&#x4E2A;&#x90FD;&#x540C;&#x65F6;&#x5904;&#x7406;&#x6240;&#x6709;&#x5546;&#x54C1;&#x7684;&#x9500;&#x552E;&#xFF0C;&#x5982;&#x56FE; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/version-control.html#img-data-lww" target="_blank">&#x56FE; 7 &#x201C;Consequence of no concurrency control&#x201D;</a> &#x6240;&#x793A;&#x3002;</p>
<p><strong>&#x56FE; 7. Consequence of no concurrency control</strong></p>
<p><img src="assets/elas_0301.png" alt="Consequence of no concurrency control"></p>
<p><code>web_1</code> &#x5BF9; <code>stock_count</code> &#x6240;&#x505A;&#x7684;&#x66F4;&#x6539;&#x5DF2;&#x7ECF;&#x4E22;&#x5931;&#xFF0C;&#x56E0;&#x4E3A; <code>web_2</code> &#x4E0D;&#x77E5;&#x9053;&#x5B83;&#x7684; <code>stock_count</code> &#x7684;&#x62F7;&#x8D1D;&#x5DF2;&#x7ECF;&#x8FC7;&#x671F;&#x3002; &#x7ED3;&#x679C;&#x6211;&#x4EEC;&#x4F1A;&#x8BA4;&#x4E3A;&#x6709;&#x8D85;&#x8FC7;&#x5546;&#x54C1;&#x7684;&#x5B9E;&#x9645;&#x6570;&#x91CF;&#x7684;&#x5E93;&#x5B58;&#xFF0C;&#x56E0;&#x4E3A;&#x5356;&#x7ED9;&#x987E;&#x5BA2;&#x7684;&#x5E93;&#x5B58;&#x5546;&#x54C1;&#x5E76;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x8BA9;&#x4ED6;&#x4EEC;&#x975E;&#x5E38;&#x5931;&#x671B;&#x3002;</p>
<p>&#x53D8;&#x66F4;&#x8D8A;&#x9891;&#x7E41;&#xFF0C;&#x8BFB;&#x6570;&#x636E;&#x548C;&#x66F4;&#x65B0;&#x6570;&#x636E;&#x7684;&#x95F4;&#x9699;&#x8D8A;&#x957F;&#xFF0C;&#x4E5F;&#x5C31;&#x8D8A;&#x53EF;&#x80FD;&#x4E22;&#x5931;&#x53D8;&#x66F4;&#x3002;</p>
<p>&#x5728;&#x6570;&#x636E;&#x5E93;&#x9886;&#x57DF;&#x4E2D;&#xFF0C;&#x6709;&#x4E24;&#x79CD;&#x65B9;&#x6CD5;&#x901A;&#x5E38;&#x88AB;&#x7528;&#x6765;&#x786E;&#x4FDD;&#x5E76;&#x53D1;&#x66F4;&#x65B0;&#x65F6;&#x53D8;&#x66F4;&#x4E0D;&#x4F1A;&#x4E22;&#x5931;&#xFF1A;</p>
<ul>
<li><p><em>&#x60B2;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;</em></p>
<p>&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x88AB;&#x5173;&#x7CFB;&#x578B;&#x6570;&#x636E;&#x5E93;&#x5E7F;&#x6CDB;&#x4F7F;&#x7528;&#xFF0C;&#x5B83;&#x5047;&#x5B9A;&#x6709;&#x53D8;&#x66F4;&#x51B2;&#x7A81;&#x53EF;&#x80FD;&#x53D1;&#x751F;&#xFF0C;&#x56E0;&#x6B64;&#x963B;&#x585E;&#x8BBF;&#x95EE;&#x8D44;&#x6E90;&#x4EE5;&#x9632;&#x6B62;&#x51B2;&#x7A81;&#x3002; &#x4E00;&#x4E2A;&#x5178;&#x578B;&#x7684;&#x4F8B;&#x5B50;&#x662F;&#x8BFB;&#x53D6;&#x4E00;&#x884C;&#x6570;&#x636E;&#x4E4B;&#x524D;&#x5148;&#x5C06;&#x5176;&#x9501;&#x4F4F;&#xFF0C;&#x786E;&#x4FDD;&#x53EA;&#x6709;&#x653E;&#x7F6E;&#x9501;&#x7684;&#x7EBF;&#x7A0B;&#x80FD;&#x591F;&#x5BF9;&#x8FD9;&#x884C;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#x3002;</p>
</li>
<li><p><em>&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;</em></p>
<p>Elasticsearch &#x4E2D;&#x4F7F;&#x7528;&#x7684;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x5047;&#x5B9A;&#x51B2;&#x7A81;&#x662F;&#x4E0D;&#x53EF;&#x80FD;&#x53D1;&#x751F;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x4E0D;&#x4F1A;&#x963B;&#x585E;&#x6B63;&#x5728;&#x5C1D;&#x8BD5;&#x7684;&#x64CD;&#x4F5C;&#x3002; &#x7136;&#x800C;&#xFF0C;&#x5982;&#x679C;&#x6E90;&#x6570;&#x636E;&#x5728;&#x8BFB;&#x5199;&#x5F53;&#x4E2D;&#x88AB;&#x4FEE;&#x6539;&#xFF0C;&#x66F4;&#x65B0;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#x3002;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x63A5;&#x4E0B;&#x6765;&#x5C06;&#x51B3;&#x5B9A;&#x8BE5;&#x5982;&#x4F55;&#x89E3;&#x51B3;&#x51B2;&#x7A81;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x53EF;&#x4EE5;&#x91CD;&#x8BD5;&#x66F4;&#x65B0;&#x3001;&#x4F7F;&#x7528;&#x65B0;&#x7684;&#x6570;&#x636E;&#x3001;&#x6216;&#x8005;&#x5C06;&#x76F8;&#x5173;&#x60C5;&#x51B5;&#x62A5;&#x544A;&#x7ED9;&#x7528;&#x6237;&#x3002;</p>
</li>
</ul>
<h3 id="&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;"><a name="&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;" class="anchor-navigation-ex-anchor" href="#&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4E50;&#x89C2;&#x5E76;&#x53D1;&#x63A7;&#x5236;</h3>
<p>Elasticsearch &#x662F;&#x5206;&#x5E03;&#x5F0F;&#x7684;&#x3002;&#x5F53;&#x6587;&#x6863;&#x521B;&#x5EFA;&#x3001;&#x66F4;&#x65B0;&#x6216;&#x5220;&#x9664;&#x65F6;&#xFF0C; &#x65B0;&#x7248;&#x672C;&#x7684;&#x6587;&#x6863;&#x5FC5;&#x987B;&#x590D;&#x5236;&#x5230;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x5176;&#x4ED6;&#x8282;&#x70B9;&#x3002;Elasticsearch &#x4E5F;&#x662F;&#x5F02;&#x6B65;&#x548C;&#x5E76;&#x53D1;&#x7684;&#xFF0C;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x8FD9;&#x4E9B;&#x590D;&#x5236;&#x8BF7;&#x6C42;&#x88AB;&#x5E76;&#x884C;&#x53D1;&#x9001;&#xFF0C;&#x5E76;&#x4E14;&#x5230;&#x8FBE;&#x76EE;&#x7684;&#x5730;&#x65F6;&#x4E5F;&#x8BB8; <em>&#x987A;&#x5E8F;&#x662F;&#x4E71;&#x7684;</em>&#x3002; Elasticsearch &#x9700;&#x8981;&#x4E00;&#x79CD;&#x65B9;&#x6CD5;&#x786E;&#x4FDD;&#x6587;&#x6863;&#x7684;&#x65E7;&#x7248;&#x672C;&#x4E0D;&#x4F1A;&#x8986;&#x76D6;&#x65B0;&#x7684;&#x7248;&#x672C;&#x3002;</p>
<p>&#x5F53;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x8BA8;&#x8BBA; <code>index</code> &#xFF0C; <code>GET</code> &#x548C; <code>delete</code> &#x8BF7;&#x6C42;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x6307;&#x51FA;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x6709;&#x4E00;&#x4E2A; <code>_version</code> &#xFF08;&#x7248;&#x672C;&#xFF09;&#x53F7;&#xFF0C;&#x5F53;&#x6587;&#x6863;&#x88AB;&#x4FEE;&#x6539;&#x65F6;&#x7248;&#x672C;&#x53F7;&#x9012;&#x589E;&#x3002; Elasticsearch &#x4F7F;&#x7528;&#x8FD9;&#x4E2A; <code>_version</code> &#x53F7;&#x6765;&#x786E;&#x4FDD;&#x53D8;&#x66F4;&#x4EE5;&#x6B63;&#x786E;&#x987A;&#x5E8F;&#x5F97;&#x5230;&#x6267;&#x884C;&#x3002;&#x5982;&#x679C;&#x65E7;&#x7248;&#x672C;&#x7684;&#x6587;&#x6863;&#x5728;&#x65B0;&#x7248;&#x672C;&#x4E4B;&#x540E;&#x5230;&#x8FBE;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x88AB;&#x7B80;&#x5355;&#x7684;&#x5FFD;&#x7565;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5229;&#x7528; <code>_version</code> &#x53F7;&#x6765;&#x786E;&#x4FDD; &#x5E94;&#x7528;&#x4E2D;&#x76F8;&#x4E92;&#x51B2;&#x7A81;&#x7684;&#x53D8;&#x66F4;&#x4E0D;&#x4F1A;&#x5BFC;&#x81F4;&#x6570;&#x636E;&#x4E22;&#x5931;&#x3002;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x6307;&#x5B9A;&#x60F3;&#x8981;&#x4FEE;&#x6539;&#x6587;&#x6863;&#x7684; <code>version</code> &#x53F7;&#x6765;&#x8FBE;&#x5230;&#x8FD9;&#x4E2A;&#x76EE;&#x7684;&#x3002; &#x5982;&#x679C;&#x8BE5;&#x7248;&#x672C;&#x4E0D;&#x662F;&#x5F53;&#x524D;&#x7248;&#x672C;&#x53F7;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x8BF7;&#x6C42;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#x3002;</p>
<p>&#x8BA9;&#x6211;&#x4EEC;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">1</span>/_create
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>
}
</code></pre>
<p>&#x54CD;&#x5E94;&#x4F53;&#x544A;&#x8BC9;&#x6211;&#x4EEC;&#xFF0C;&#x8FD9;&#x4E2A;&#x65B0;&#x521B;&#x5EFA;&#x7684;&#x6587;&#x6863; <code>_version</code> &#x7248;&#x672C;&#x53F7;&#x662F; <code>1</code> &#x3002;&#x73B0;&#x5728;&#x5047;&#x8BBE;&#x6211;&#x4EEC;&#x60F3;&#x7F16;&#x8F91;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#xFF1A;&#x6211;&#x4EEC;&#x52A0;&#x8F7D;&#x5176;&#x6570;&#x636E;&#x5230; web &#x8868;&#x5355;&#x4E2D;&#xFF0C; &#x505A;&#x4E00;&#x4E9B;&#x4FEE;&#x6539;&#xFF0C;&#x7136;&#x540E;&#x4FDD;&#x5B58;&#x65B0;&#x7684;&#x7248;&#x672C;&#x3002;</p>
<p>&#x9996;&#x5148;&#x6211;&#x4EEC;&#x68C0;&#x7D22;&#x6587;&#x6863;:</p>
<pre><code class="lang-js">GET /website/blog/<span class="hljs-number">1</span>
</code></pre>
<p>&#x54CD;&#x5E94;&#x4F53;&#x5305;&#x542B;&#x76F8;&#x540C;&#x7684; <code>_version</code> &#x7248;&#x672C;&#x53F7; <code>1</code> &#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;1&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">1</span>,
  <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
  <span class="hljs-string">&quot;_source&quot;</span> :  {
      <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
      <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Just trying this out...&quot;</span>
  }
}
</code></pre>
<p>&#x73B0;&#x5728;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x901A;&#x8FC7;&#x91CD;&#x5EFA;&#x6587;&#x6863;&#x7684;&#x7D22;&#x5F15;&#x6765;&#x4FDD;&#x5B58;&#x4FEE;&#x6539;&#xFF0C;&#x6211;&#x4EEC;&#x6307;&#x5B9A; <code>version</code> &#x4E3A;&#x6211;&#x4EEC;&#x7684;&#x4FEE;&#x6539;&#x4F1A;&#x88AB;&#x5E94;&#x7528;&#x7684;&#x7248;&#x672C;&#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">1</span>?version=<span class="hljs-number">1</span>                        &lt;<span class="hljs-number">1</span>&gt;
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Starting to get the hang of this...&quot;</span>
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> &#x6211;&#x4EEC;&#x60F3;&#x8FD9;&#x4E2A;&#x5728;&#x6211;&#x4EEC;&#x7D22;&#x5F15;&#x4E2D;&#x7684;&#x6587;&#x6863;&#x53EA;&#x6709;&#x73B0;&#x5728;&#x7684; <code>_version</code> &#x4E3A; <code>1</code> &#x65F6;&#xFF0C;&#x672C;&#x6B21;&#x66F4;&#x65B0;&#x624D;&#x80FD;&#x6210;&#x529F;&#x3002;   </p>
</blockquote>
<p>&#x6B64;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#xFF0C;&#x5E76;&#x4E14;&#x54CD;&#x5E94;&#x4F53;&#x544A;&#x8BC9;&#x6211;&#x4EEC; <code>_version</code> &#x5DF2;&#x7ECF;&#x9012;&#x589E;&#x5230; <code>2</code> &#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span>:   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span>:    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span>:      <span class="hljs-string">&quot;1&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span>: <span class="hljs-number">2</span>
  <span class="hljs-string">&quot;created&quot;</span>:  <span class="hljs-literal">false</span>
}
</code></pre>
<p>&#x7136;&#x800C;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x91CD;&#x65B0;&#x8FD0;&#x884C;&#x76F8;&#x540C;&#x7684;&#x7D22;&#x5F15;&#x8BF7;&#x6C42;&#xFF0C;&#x4ECD;&#x7136;&#x6307;&#x5B9A; <code>version=1</code> &#xFF0C; Elasticsearch &#x8FD4;&#x56DE; <code>409 Conflict</code>HTTP &#x54CD;&#x5E94;&#x7801;&#xFF0C;&#x548C;&#x4E00;&#x4E2A;&#x5982;&#x4E0B;&#x6240;&#x793A;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;error&quot;</span>: {
      <span class="hljs-string">&quot;root_cause&quot;</span>: [
         {
            <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;version_conflict_engine_exception&quot;</span>,
            <span class="hljs-string">&quot;reason&quot;</span>: <span class="hljs-string">&quot;[blog][1]: version conflict, current [2], provided [1]&quot;</span>,
            <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>,
            <span class="hljs-string">&quot;shard&quot;</span>: <span class="hljs-string">&quot;3&quot;</span>
         }
      ],
      <span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;version_conflict_engine_exception&quot;</span>,
      <span class="hljs-string">&quot;reason&quot;</span>: <span class="hljs-string">&quot;[blog][1]: version conflict, current [2], provided [1]&quot;</span>,
      <span class="hljs-string">&quot;index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>,
      <span class="hljs-string">&quot;shard&quot;</span>: <span class="hljs-string">&quot;3&quot;</span>
   },
   <span class="hljs-string">&quot;status&quot;</span>: <span class="hljs-number">409</span>
}
</code></pre>
<p>&#x8FD9;&#x544A;&#x8BC9;&#x6211;&#x4EEC;&#x5728; Elasticsearch &#x4E2D;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x5F53;&#x524D; <code>_version</code> &#x53F7;&#x662F; <code>2</code> &#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x6307;&#x5B9A;&#x7684;&#x66F4;&#x65B0;&#x7248;&#x672C;&#x53F7;&#x4E3A; <code>1</code> &#x3002;</p>
<p>&#x6211;&#x4EEC;&#x73B0;&#x5728;&#x600E;&#x4E48;&#x505A;&#x53D6;&#x51B3;&#x4E8E;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x9700;&#x6C42;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x544A;&#x8BC9;&#x7528;&#x6237;&#x8BF4;&#x5176;&#x4ED6;&#x4EBA;&#x5DF2;&#x7ECF;&#x4FEE;&#x6539;&#x4E86;&#x6587;&#x6863;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x518D;&#x6B21;&#x4FDD;&#x5B58;&#x4E4B;&#x524D;&#x68C0;&#x67E5;&#x8FD9;&#x4E9B;&#x4FEE;&#x6539;&#x5185;&#x5BB9;&#x3002; &#x6216;&#x8005;&#xFF0C;&#x5728;&#x4E4B;&#x524D;&#x7684;&#x5546;&#x54C1; <code>stock_count</code> &#x573A;&#x666F;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x5230;&#x6700;&#x65B0;&#x7684;&#x6587;&#x6863;&#x5E76;&#x5C1D;&#x8BD5;&#x91CD;&#x65B0;&#x5E94;&#x7528;&#x8FD9;&#x4E9B;&#x4FEE;&#x6539;&#x3002;</p>
<p>&#x6240;&#x6709;&#x6587;&#x6863;&#x7684;&#x66F4;&#x65B0;&#x6216;&#x5220;&#x9664; API&#xFF0C;&#x90FD;&#x53EF;&#x4EE5;&#x63A5;&#x53D7; <code>version</code> &#x53C2;&#x6570;&#xFF0C;&#x8FD9;&#x5141;&#x8BB8;&#x4F60;&#x5728;&#x4EE3;&#x7801;&#x4E2D;&#x4F7F;&#x7528;&#x4E50;&#x89C2;&#x7684;&#x5E76;&#x53D1;&#x63A7;&#x5236;&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x79CD;&#x660E;&#x667A;&#x7684;&#x505A;&#x6CD5;&#x3002;</p>
<p><strong>&#x901A;&#x8FC7;&#x5916;&#x90E8;&#x7CFB;&#x7EDF;&#x4F7F;&#x7528;&#x7248;&#x672C;&#x63A7;&#x5236;</strong></p>
<p>&#x4E00;&#x4E2A;&#x5E38;&#x89C1;&#x7684;&#x8BBE;&#x7F6E;&#x662F;&#x4F7F;&#x7528;&#x5176;&#x5B83;&#x6570;&#x636E;&#x5E93;&#x4F5C;&#x4E3A;&#x4E3B;&#x8981;&#x7684;&#x6570;&#x636E;&#x5B58;&#x50A8;&#xFF0C;&#x4F7F;&#x7528; Elasticsearch &#x505A;&#x6570;&#x636E;&#x68C0;&#x7D22;&#xFF0C; &#x8FD9;&#x610F;&#x5473;&#x7740;&#x4E3B;&#x6570;&#x636E;&#x5E93;&#x7684;&#x6240;&#x6709;&#x66F4;&#x6539;&#x53D1;&#x751F;&#x65F6;&#x90FD;&#x9700;&#x8981;&#x88AB;&#x590D;&#x5236;&#x5230; Elasticsearch &#xFF0C;&#x5982;&#x679C;&#x591A;&#x4E2A;&#x8FDB;&#x7A0B;&#x8D1F;&#x8D23;&#x8FD9;&#x4E00;&#x6570;&#x636E;&#x540C;&#x6B65;&#xFF0C;&#x4F60;&#x53EF;&#x80FD;&#x9047;&#x5230;&#x7C7B;&#x4F3C;&#x4E8E;&#x4E4B;&#x524D;&#x63CF;&#x8FF0;&#x7684;&#x5E76;&#x53D1;&#x95EE;&#x9898;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x4E3B;&#x6570;&#x636E;&#x5E93;&#x5DF2;&#x7ECF;&#x6709;&#x4E86;&#x7248;&#x672C;&#x53F7;&#x2009;&#x2014;&#x2009;&#x6216;&#x4E00;&#x4E2A;&#x80FD;&#x4F5C;&#x4E3A;&#x7248;&#x672C;&#x53F7;&#x7684;&#x5B57;&#x6BB5;&#x503C;&#x6BD4;&#x5982; <code>timestamp</code>&#x2009;&#x2014;&#x2009;&#x90A3;&#x4E48;&#x4F60;&#x5C31;&#x53EF;&#x4EE5;&#x5728; Elasticsearch &#x4E2D;&#x901A;&#x8FC7;&#x589E;&#x52A0; <code>version_type=external</code> &#x5230;&#x67E5;&#x8BE2;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x65B9;&#x5F0F;&#x91CD;&#x7528;&#x8FD9;&#x4E9B;&#x76F8;&#x540C;&#x7684;&#x7248;&#x672C;&#x53F7;&#xFF0C; &#x7248;&#x672C;&#x53F7;&#x5FC5;&#x987B;&#x662F;&#x5927;&#x4E8E;&#x96F6;&#x7684;&#x6574;&#x6570;&#xFF0C; &#x4E14;&#x5C0F;&#x4E8E; <code>9.2E+18</code>&#x2009;&#x2014;&#x2009;&#x4E00;&#x4E2A; Java &#x4E2D; <code>long</code> &#x7C7B;&#x578B;&#x7684;&#x6B63;&#x503C;&#x3002;</p>
<p>&#x5916;&#x90E8;&#x7248;&#x672C;&#x53F7;&#x7684;&#x5904;&#x7406;&#x65B9;&#x5F0F;&#x548C;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x8BA8;&#x8BBA;&#x7684;&#x5185;&#x90E8;&#x7248;&#x672C;&#x53F7;&#x7684;&#x5904;&#x7406;&#x65B9;&#x5F0F;&#x6709;&#x4E9B;&#x4E0D;&#x540C;&#xFF0C; Elasticsearch &#x4E0D;&#x662F;&#x68C0;&#x67E5;&#x5F53;&#x524D; <code>_version</code> &#x548C;&#x8BF7;&#x6C42;&#x4E2D;&#x6307;&#x5B9A;&#x7684;&#x7248;&#x672C;&#x53F7;&#x662F;&#x5426;&#x76F8;&#x540C;&#xFF0C; &#x800C;&#x662F;&#x68C0;&#x67E5;&#x5F53;&#x524D; <code>_version</code> &#x662F;&#x5426; <em>&#x5C0F;&#x4E8E;</em> &#x6307;&#x5B9A;&#x7684;&#x7248;&#x672C;&#x53F7;&#x3002; &#x5982;&#x679C;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#xFF0C;&#x5916;&#x90E8;&#x7684;&#x7248;&#x672C;&#x53F7;&#x4F5C;&#x4E3A;&#x6587;&#x6863;&#x7684;&#x65B0; <code>_version</code> &#x8FDB;&#x884C;&#x5B58;&#x50A8;&#x3002;</p>
<p>&#x5916;&#x90E8;&#x7248;&#x672C;&#x53F7;&#x4E0D;&#x4EC5;&#x5728;&#x7D22;&#x5F15;&#x548C;&#x5220;&#x9664;&#x8BF7;&#x6C42;&#x662F;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#xFF0C;&#x800C;&#x4E14;&#x5728; <em>&#x521B;&#x5EFA;</em> &#x65B0;&#x6587;&#x6863;&#x65F6;&#x4E5F;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x3002;</p>
<p>&#x4F8B;&#x5982;&#xFF0C;&#x8981;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x5177;&#x6709;&#x5916;&#x90E8;&#x7248;&#x672C;&#x53F7; <code>5</code> &#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x6309;&#x4EE5;&#x4E0B;&#x65B9;&#x6CD5;&#x8FDB;&#x884C;&#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">2</span>?version=<span class="hljs-number">5</span>&amp;version_type=external
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first external blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;Starting to get the hang of this...&quot;</span>
}
</code></pre>
<p>&#x5728;&#x54CD;&#x5E94;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x80FD;&#x770B;&#x5230;&#x5F53;&#x524D;&#x7684; <code>_version</code> &#x7248;&#x672C;&#x53F7;&#x662F; <code>5</code> &#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span>:   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span>:    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span>:      <span class="hljs-string">&quot;2&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span>: <span class="hljs-number">5</span>,
  <span class="hljs-string">&quot;created&quot;</span>:  <span class="hljs-literal">true</span>
}
</code></pre>
<p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x66F4;&#x65B0;&#x8FD9;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x6307;&#x5B9A;&#x4E00;&#x4E2A;&#x65B0;&#x7684; <code>version</code> &#x53F7;&#x662F; <code>10</code> &#xFF1A;</p>
<pre><code class="lang-js">PUT /website/blog/<span class="hljs-number">2</span>?version=<span class="hljs-number">10</span>&amp;version_type=external
{
  <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;My first external blog entry&quot;</span>,
  <span class="hljs-string">&quot;text&quot;</span>:  <span class="hljs-string">&quot;This is a piece of cake...&quot;</span>
}
</code></pre>
<p>&#x8BF7;&#x6C42;&#x6210;&#x529F;&#x5E76;&#x5C06;&#x5F53;&#x524D; <code>_version</code> &#x8BBE;&#x4E3A; <code>10</code> &#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;_index&quot;</span>:   <span class="hljs-string">&quot;website&quot;</span>,
  <span class="hljs-string">&quot;_type&quot;</span>:    <span class="hljs-string">&quot;blog&quot;</span>,
  <span class="hljs-string">&quot;_id&quot;</span>:      <span class="hljs-string">&quot;2&quot;</span>,
  <span class="hljs-string">&quot;_version&quot;</span>: <span class="hljs-number">10</span>,
  <span class="hljs-string">&quot;created&quot;</span>:  <span class="hljs-literal">false</span>
}
</code></pre>
<p>&#x5982;&#x679C;&#x4F60;&#x8981;&#x91CD;&#x65B0;&#x8FD0;&#x884C;&#x6B64;&#x8BF7;&#x6C42;&#x65F6;&#xFF0C;&#x5B83;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#xFF0C;&#x5E76;&#x8FD4;&#x56DE;&#x50CF;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x770B;&#x5230;&#x7684;&#x540C;&#x6837;&#x7684;&#x51B2;&#x7A81;&#x9519;&#x8BEF;&#xFF0C; &#x56E0;&#x4E3A;&#x6307;&#x5B9A;&#x7684;&#x5916;&#x90E8;&#x7248;&#x672C;&#x53F7;&#x4E0D;&#x5927;&#x4E8E; Elasticsearch &#x7684;&#x5F53;&#x524D;&#x7248;&#x672C;&#x53F7;&#x3002;</p>
<h3 id="&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;"><a name="&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;" class="anchor-navigation-ex-anchor" href="#&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;</h3>
<p>&#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/update-doc.html" target="_blank">&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;</a> , &#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x4ECB;&#x7ECD;&#x8FC7; &#x66F4;&#x65B0;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x68C0;&#x7D22;&#x5E76;&#x4FEE;&#x6539;&#x5B83;&#xFF0C;&#x7136;&#x540E;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x6574;&#x4E2A;&#x6587;&#x6863;&#xFF0C;&#x8FD9;&#x7684;&#x786E;&#x5982;&#x6B64;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x4F7F;&#x7528; <code>update</code> API &#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x90E8;&#x5206;&#x66F4;&#x65B0;&#x6587;&#x6863;&#xFF0C;&#x4F8B;&#x5982;&#x5728;&#x67D0;&#x4E2A;&#x8BF7;&#x6C42;&#x65F6;&#x5BF9;&#x8BA1;&#x6570;&#x5668;&#x8FDB;&#x884C;&#x7D2F;&#x52A0;&#x3002;</p>
<p>&#x6211;&#x4EEC;&#x4E5F;&#x4ECB;&#x7ECD;&#x8FC7;&#x6587;&#x6863;&#x662F;&#x4E0D;&#x53EF;&#x53D8;&#x7684;&#xFF1A;&#x4ED6;&#x4EEC;&#x4E0D;&#x80FD;&#x88AB;&#x4FEE;&#x6539;&#xFF0C;&#x53EA;&#x80FD;&#x88AB;&#x66FF;&#x6362;&#x3002; <code>update</code> API &#x5FC5;&#x987B;&#x9075;&#x5FAA;&#x540C;&#x6837;&#x7684;&#x89C4;&#x5219;&#x3002; &#x4ECE;&#x5916;&#x90E8;&#x6765;&#x770B;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x7684;&#x67D0;&#x4E2A;&#x4F4D;&#x7F6E;&#x8FDB;&#x884C;&#x90E8;&#x5206;&#x66F4;&#x65B0;&#x3002;&#x7136;&#x800C;&#x5728;&#x5185;&#x90E8;&#xFF0C; <code>update</code> API &#x7B80;&#x5355;&#x4F7F;&#x7528;&#x4E0E;&#x4E4B;&#x524D;&#x63CF;&#x8FF0;&#x76F8;&#x540C;&#x7684; <em>&#x68C0;&#x7D22;-&#x4FEE;&#x6539;-&#x91CD;&#x5EFA;&#x7D22;&#x5F15;</em> &#x7684;&#x5904;&#x7406;&#x8FC7;&#x7A0B;&#x3002; &#x533A;&#x522B;&#x5728;&#x4E8E;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#x53D1;&#x751F;&#x5728;&#x5206;&#x7247;&#x5185;&#x90E8;&#xFF0C;&#x8FD9;&#x6837;&#x5C31;&#x907F;&#x514D;&#x4E86;&#x591A;&#x6B21;&#x8BF7;&#x6C42;&#x7684;&#x7F51;&#x7EDC;&#x5F00;&#x9500;&#x3002;&#x901A;&#x8FC7;&#x51CF;&#x5C11;&#x68C0;&#x7D22;&#x548C;&#x91CD;&#x5EFA;&#x7D22;&#x5F15;&#x6B65;&#x9AA4;&#x4E4B;&#x95F4;&#x7684;&#x65F6;&#x95F4;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x51CF;&#x5C11;&#x4E86;&#x5176;&#x4ED6;&#x8FDB;&#x7A0B;&#x7684;&#x53D8;&#x66F4;&#x5E26;&#x6765;&#x51B2;&#x7A81;&#x7684;&#x53EF;&#x80FD;&#x6027;&#x3002;</p>
<p><code>update</code> &#x8BF7;&#x6C42;&#x6700;&#x7B80;&#x5355;&#x7684;&#x4E00;&#x79CD;&#x5F62;&#x5F0F;&#x662F;&#x63A5;&#x6536;&#x6587;&#x6863;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x4F5C;&#x4E3A; <code>doc</code> &#x7684;&#x53C2;&#x6570;&#xFF0C; &#x5B83;&#x53EA;&#x662F;&#x4E0E;&#x73B0;&#x6709;&#x7684;&#x6587;&#x6863;&#x8FDB;&#x884C;&#x5408;&#x5E76;&#x3002;&#x5BF9;&#x8C61;&#x88AB;&#x5408;&#x5E76;&#x5230;&#x4E00;&#x8D77;&#xFF0C;&#x8986;&#x76D6;&#x73B0;&#x6709;&#x7684;&#x5B57;&#x6BB5;&#xFF0C;&#x589E;&#x52A0;&#x65B0;&#x7684;&#x5B57;&#x6BB5;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x589E;&#x52A0;&#x5B57;&#x6BB5; <code>tags</code> &#x548C; <code>views</code> &#x5230;&#x6211;&#x4EEC;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/blog/<span class="hljs-number">1</span>/_update
{
   <span class="hljs-string">&quot;doc&quot;</span> : {
      <span class="hljs-string">&quot;tags&quot;</span> : [ <span class="hljs-string">&quot;testing&quot;</span> ],
      <span class="hljs-string">&quot;views&quot;</span>: <span class="hljs-number">0</span>
   }
}
</code></pre>
<p>&#x5982;&#x679C;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#xFF0C;&#x6211;&#x4EEC;&#x770B;&#x5230;&#x7C7B;&#x4F3C;&#x4E8E; <code>index</code> &#x8BF7;&#x6C42;&#x7684;&#x54CD;&#x5E94;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
   <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;1&quot;</span>,
   <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
   <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">3</span>
}
</code></pre>
<p>&#x68C0;&#x7D22;&#x6587;&#x6863;&#x663E;&#x793A;&#x4E86;&#x66F4;&#x65B0;&#x540E;&#x7684; <code>_source</code> &#x5B57;&#x6BB5;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;_index&quot;</span>:    <span class="hljs-string">&quot;website&quot;</span>,
   <span class="hljs-string">&quot;_type&quot;</span>:     <span class="hljs-string">&quot;blog&quot;</span>,
   <span class="hljs-string">&quot;_id&quot;</span>:       <span class="hljs-string">&quot;1&quot;</span>,
   <span class="hljs-string">&quot;_version&quot;</span>:  <span class="hljs-number">3</span>,
   <span class="hljs-string">&quot;found&quot;</span>:     <span class="hljs-literal">true</span>,
   <span class="hljs-string">&quot;_source&quot;</span>: {
      <span class="hljs-string">&quot;title&quot;</span>:  <span class="hljs-string">&quot;My first blog entry&quot;</span>,
      <span class="hljs-string">&quot;text&quot;</span>:   <span class="hljs-string">&quot;Starting to get the hang of this...&quot;</span>,
      <span class="hljs-string">&quot;tags&quot;</span>: [ <span class="hljs-string">&quot;testing&quot;</span> ],                            &lt;1&gt;
      &quot;views&quot;:  0                                       &lt;2&gt;
   }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img"> <img src="assets/2.png" alt="img">  &#x65B0;&#x7684;&#x5B57;&#x6BB5;&#x5DF2;&#x88AB;&#x6DFB;&#x52A0;&#x5230; <code>_source</code> &#x4E2D;&#x3002;   </p>
</blockquote>
<p><strong>&#x4F7F;&#x7528;&#x811A;&#x672C;&#x90E8;&#x5206;&#x66F4;&#x65B0;&#x6587;&#x6863;</strong></p>
<p>&#x811A;&#x672C;&#x53EF;&#x4EE5;&#x5728; <code>update</code> API&#x4E2D;&#x7528;&#x6765;&#x6539;&#x53D8; <code>_source</code> &#x7684;&#x5B57;&#x6BB5;&#x5185;&#x5BB9;&#xFF0C; &#x5B83;&#x5728;&#x66F4;&#x65B0;&#x811A;&#x672C;&#x4E2D;&#x79F0;&#x4E3A; <code>ctx._source</code> &#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x811A;&#x672C;&#x6765;&#x589E;&#x52A0;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x4E2D; <code>views</code> &#x7684;&#x6570;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/blog/<span class="hljs-number">1</span>/_update
{
   <span class="hljs-string">&quot;script&quot;</span> : <span class="hljs-string">&quot;ctx._source.views+=1&quot;</span>
}
</code></pre>
<hr>
<blockquote>
<p> <strong>&#x7528; Groovy &#x811A;&#x672C;&#x7F16;&#x7A0B;</strong></p>
<p> &#x5BF9;&#x4E8E;&#x90A3;&#x4E9B; API &#x4E0D;&#x80FD;&#x6EE1;&#x8DB3;&#x9700;&#x6C42;&#x7684;&#x60C5;&#x51B5;&#xFF0C;Elasticsearch &#x5141;&#x8BB8;&#x4F60;&#x4F7F;&#x7528;&#x811A;&#x672C;&#x7F16;&#x5199;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x903B;&#x8F91;&#x3002; &#x8BB8;&#x591A;API&#x90FD;&#x652F;&#x6301;&#x811A;&#x672C;&#x7684;&#x4F7F;&#x7528;&#xFF0C;&#x5305;&#x62EC;&#x641C;&#x7D22;&#x3001;&#x6392;&#x5E8F;&#x3001;&#x805A;&#x5408;&#x548C;&#x6587;&#x6863;&#x66F4;&#x65B0;&#x3002; &#x811A;&#x672C;&#x53EF;&#x4EE5;&#x4F5C;&#x4E3A;&#x8BF7;&#x6C42;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x88AB;&#x4F20;&#x9012;&#xFF0C;&#x4ECE;&#x7279;&#x6B8A;&#x7684; .scripts &#x7D22;&#x5F15;&#x4E2D;&#x68C0;&#x7D22;&#xFF0C;&#x6216;&#x8005;&#x4ECE;&#x78C1;&#x76D8;&#x52A0;&#x8F7D;&#x811A;&#x672C;&#x3002;</p>
<p> &#x9ED8;&#x8BA4;&#x7684;&#x811A;&#x672C;&#x8BED;&#x8A00; &#x662F; <a href="http://groovy.codehaus.org/" target="_blank">Groovy</a>&#xFF0C;&#x4E00;&#x79CD;&#x5FEB;&#x901F;&#x8868;&#x8FBE;&#x7684;&#x811A;&#x672C;&#x8BED;&#x8A00;&#xFF0C;&#x5728;&#x8BED;&#x6CD5;&#x4E0A;&#x4E0E; JavaScript &#x7C7B;&#x4F3C;&#x3002; &#x5B83;&#x5728; Elasticsearch V1.3.0 &#x7248;&#x672C;&#x9996;&#x6B21;&#x5F15;&#x5165;&#x5E76;&#x8FD0;&#x884C;&#x5728; <em>&#x6C99;&#x76D2;</em> &#x4E2D;&#xFF0C;&#x7136;&#x800C; Groovy &#x811A;&#x672C;&#x5F15;&#x64CE;&#x5B58;&#x5728;&#x6F0F;&#x6D1E;&#xFF0C; &#x5141;&#x8BB8;&#x653B;&#x51FB;&#x8005;&#x901A;&#x8FC7;&#x6784;&#x5EFA; Groovy &#x811A;&#x672C;&#xFF0C;&#x5728; Elasticsearch Java VM &#x8FD0;&#x884C;&#x65F6;&#x8131;&#x79BB;&#x6C99;&#x76D2;&#x5E76;&#x6267;&#x884C; shell &#x547D;&#x4EE4;&#x3002;</p>
<p> &#x56E0;&#x6B64;&#xFF0C;&#x5728;&#x7248;&#x672C; v1.3.8 &#x3001; 1.4.3 &#x548C; V1.5.0 &#x53CA;&#x66F4;&#x9AD8;&#x7684;&#x7248;&#x672C;&#x4E2D;&#xFF0C;&#x5B83;&#x5DF2;&#x7ECF;&#x88AB;&#x9ED8;&#x8BA4;&#x7981;&#x7528;&#x3002; &#x6B64;&#x5916;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8BBE;&#x7F6E;&#x96C6;&#x7FA4;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x8282;&#x70B9;&#x7684; <code>config/elasticsearch.yml</code> &#x6587;&#x4EF6;&#x6765;&#x7981;&#x7528;&#x52A8;&#x6001; Groovy &#x811A;&#x672C;&#xFF1A;</p>
<pre><code class="lang-yaml"> script.groovy.sandbox.enabled: <span class="hljs-literal">false</span>
</code></pre>
<p> &#x8FD9;&#x5C06;&#x5173;&#x95ED; Groovy &#x6C99;&#x76D2;&#xFF0C;&#x4ECE;&#x800C;&#x9632;&#x6B62;&#x52A8;&#x6001; Groovy &#x811A;&#x672C;&#x4F5C;&#x4E3A;&#x8BF7;&#x6C42;&#x7684;&#x4E00;&#x90E8;&#x5206;&#x88AB;&#x63A5;&#x53D7;&#xFF0C; &#x6216;&#x8005;&#x4ECE;&#x7279;&#x6B8A;&#x7684; <code>.scripts</code> &#x7D22;&#x5F15;&#x4E2D;&#x88AB;&#x68C0;&#x7D22;&#x3002;&#x5F53;&#x7136;&#xFF0C;&#x4F60;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x5B58;&#x50A8;&#x5728;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x7684; <code>config/scripts/</code> &#x76EE;&#x5F55;&#x4E0B;&#x7684; Groovy &#x811A;&#x672C;&#x3002;</p>
<p> &#x5982;&#x679C;&#x4F60;&#x7684;&#x67B6;&#x6784;&#x548C;&#x5B89;&#x5168;&#x6027;&#x4E0D;&#x9700;&#x8981;&#x62C5;&#x5FC3;&#x6F0F;&#x6D1E;&#x653B;&#x51FB;&#xFF0C;&#x4F8B;&#x5982;&#x4F60;&#x7684; Elasticsearch &#x7EC8;&#x7AEF;&#x4EC5;&#x66B4;&#x9732;&#x548C;&#x63D0;&#x4F9B;&#x7ED9;&#x53EF;&#x4FE1;&#x8D56;&#x7684;&#x5E94;&#x7528;&#xFF0C; &#x5F53;&#x5B83;&#x662F;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x9700;&#x8981;&#x7684;&#x7279;&#x6027;&#x65F6;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x91CD;&#x65B0;&#x542F;&#x7528;&#x52A8;&#x6001;&#x811A;&#x672C;&#x3002;</p>
<p> &#x4F60;&#x53EF;&#x4EE5;&#x5728; <a href="https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-scripting.html" target="_blank">scripting reference documentation</a> &#x83B7;&#x53D6;&#x66F4;&#x591A;&#x5173;&#x4E8E;&#x811A;&#x672C;&#x7684;&#x8D44;&#x6599;&#x3002;</p>
</blockquote>
<hr>
<p>&#x6211;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4F7F;&#x7528;&#x811A;&#x672C;&#x7ED9; <code>tags</code> &#x6570;&#x7EC4;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x6807;&#x7B7E;&#x3002;&#x5728;&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x6307;&#x5B9A;&#x65B0;&#x7684;&#x6807;&#x7B7E;&#x4F5C;&#x4E3A;&#x53C2;&#x6570;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x786C;&#x7F16;&#x7801;&#x5230;&#x811A;&#x672C;&#x5185;&#x90E8;&#x3002; &#x8FD9;&#x4F7F;&#x5F97; Elasticsearch &#x53EF;&#x4EE5;&#x91CD;&#x7528;&#x8FD9;&#x4E2A;&#x811A;&#x672C;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x6BCF;&#x6B21;&#x6211;&#x4EEC;&#x60F3;&#x6DFB;&#x52A0;&#x6807;&#x7B7E;&#x65F6;&#x90FD;&#x8981;&#x5BF9;&#x65B0;&#x811A;&#x672C;&#x91CD;&#x65B0;&#x7F16;&#x8BD1;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/blog/<span class="hljs-number">1</span>/_update
{
   <span class="hljs-string">&quot;script&quot;</span> : <span class="hljs-string">&quot;ctx._source.tags+=new_tag&quot;</span>,
   <span class="hljs-string">&quot;params&quot;</span> : {
      <span class="hljs-string">&quot;new_tag&quot;</span> : <span class="hljs-string">&quot;search&quot;</span>
   }
}
</code></pre>
<p>&#x83B7;&#x53D6;&#x6587;&#x6863;&#x5E76;&#x663E;&#x793A;&#x6700;&#x540E;&#x4E24;&#x6B21;&#x8BF7;&#x6C42;&#x7684;&#x6548;&#x679C;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;_index&quot;</span>:    <span class="hljs-string">&quot;website&quot;</span>,
   <span class="hljs-string">&quot;_type&quot;</span>:     <span class="hljs-string">&quot;blog&quot;</span>,
   <span class="hljs-string">&quot;_id&quot;</span>:       <span class="hljs-string">&quot;1&quot;</span>,
   <span class="hljs-string">&quot;_version&quot;</span>:  <span class="hljs-number">5</span>,
   <span class="hljs-string">&quot;found&quot;</span>:     <span class="hljs-literal">true</span>,
   <span class="hljs-string">&quot;_source&quot;</span>: {
      <span class="hljs-string">&quot;title&quot;</span>:  <span class="hljs-string">&quot;My first blog entry&quot;</span>,
      <span class="hljs-string">&quot;text&quot;</span>:   <span class="hljs-string">&quot;Starting to get the hang of this...&quot;</span>,
      <span class="hljs-string">&quot;tags&quot;</span>:  [<span class="hljs-string">&quot;testing&quot;</span>, <span class="hljs-string">&quot;search&quot;</span>],                      &lt;1&gt;
      &quot;views&quot;:  1                                          &lt;2&gt;
   }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   <code>search</code> &#x6807;&#x7B7E;&#x5DF2;&#x8FFD;&#x52A0;&#x5230; <code>tags</code> &#x6570;&#x7EC4;&#x4E2D;&#x3002; </p>
<p> <img src="assets/2.png" alt="img">   <code>views</code> &#x5B57;&#x6BB5;&#x5DF2;&#x9012;&#x589E;&#x3002;  </p>
</blockquote>
<p>&#x6211;&#x4EEC;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x9009;&#x62E9;&#x901A;&#x8FC7;&#x8BBE;&#x7F6E; <code>ctx.op</code> &#x4E3A; <code>delete</code> &#x6765;&#x5220;&#x9664;&#x57FA;&#x4E8E;&#x5176;&#x5185;&#x5BB9;&#x7684;&#x6587;&#x6863;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/blog/<span class="hljs-number">1</span>/_update
{
   <span class="hljs-string">&quot;script&quot;</span> : <span class="hljs-string">&quot;ctx.op = ctx._source.views == count ? &apos;delete&apos; : &apos;none&apos;&quot;</span>,
    <span class="hljs-string">&quot;params&quot;</span> : {
        <span class="hljs-string">&quot;count&quot;</span>: <span class="hljs-number">1</span>
    }
}
</code></pre>
<p><strong>&#x66F4;&#x65B0;&#x7684;&#x6587;&#x6863;&#x53EF;&#x80FD;&#x5C1A;&#x4E0D;&#x5B58;&#x5728;</strong></p>
<p>&#x5047;&#x8BBE;&#x6211;&#x4EEC;&#x9700;&#x8981; &#x5728; Elasticsearch &#x4E2D;&#x5B58;&#x50A8;&#x4E00;&#x4E2A;&#x9875;&#x9762;&#x8BBF;&#x95EE;&#x91CF;&#x8BA1;&#x6570;&#x5668;&#x3002; &#x6BCF;&#x5F53;&#x6709;&#x7528;&#x6237;&#x6D4F;&#x89C8;&#x7F51;&#x9875;&#xFF0C;&#x6211;&#x4EEC;&#x5BF9;&#x8BE5;&#x9875;&#x9762;&#x7684;&#x8BA1;&#x6570;&#x5668;&#x8FDB;&#x884C;&#x7D2F;&#x52A0;&#x3002;&#x4F46;&#x662F;&#xFF0C;&#x5982;&#x679C;&#x5B83;&#x662F;&#x4E00;&#x4E2A;&#x65B0;&#x7F51;&#x9875;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x80FD;&#x786E;&#x5B9A;&#x8BA1;&#x6570;&#x5668;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x3002; &#x5982;&#x679C;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x66F4;&#x65B0;&#x4E00;&#x4E2A;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x90A3;&#x4E48;&#x66F4;&#x65B0;&#x64CD;&#x4F5C;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#x3002;</p>
<p>&#x5728;&#x8FD9;&#x6837;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>upsert</code> &#x53C2;&#x6570;&#xFF0C;&#x6307;&#x5B9A;&#x5982;&#x679C;&#x6587;&#x6863;&#x4E0D;&#x5B58;&#x5728;&#x5C31;&#x5E94;&#x8BE5;&#x5148;&#x521B;&#x5EFA;&#x5B83;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/pageviews/<span class="hljs-number">1</span>/_update
{
   <span class="hljs-string">&quot;script&quot;</span> : <span class="hljs-string">&quot;ctx._source.views+=1&quot;</span>,
   <span class="hljs-string">&quot;upsert&quot;</span>: {
       <span class="hljs-string">&quot;views&quot;</span>: <span class="hljs-number">1</span>
   }
}
</code></pre>
<p>&#x6211;&#x4EEC;&#x7B2C;&#x4E00;&#x6B21;&#x8FD0;&#x884C;&#x8FD9;&#x4E2A;&#x8BF7;&#x6C42;&#x65F6;&#xFF0C; <code>upsert</code> &#x503C;&#x4F5C;&#x4E3A;&#x65B0;&#x6587;&#x6863;&#x88AB;&#x7D22;&#x5F15;&#xFF0C;&#x521D;&#x59CB;&#x5316; <code>views</code> &#x5B57;&#x6BB5;&#x4E3A; <code>1</code> &#x3002; &#x5728;&#x540E;&#x7EED;&#x7684;&#x8FD0;&#x884C;&#x4E2D;&#xFF0C;&#x7531;&#x4E8E;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#xFF0C; <code>script</code> &#x66F4;&#x65B0;&#x64CD;&#x4F5C;&#x5C06;&#x66FF;&#x4EE3; <code>upsert</code> &#x8FDB;&#x884C;&#x5E94;&#x7528;&#xFF0C;&#x5BF9; <code>views</code> &#x8BA1;&#x6570;&#x5668;&#x8FDB;&#x884C;&#x7D2F;&#x52A0;&#x3002;</p>
<p><strong>&#x66F4;&#x65B0;&#x548C;&#x51B2;&#x7A81;</strong></p>
<p>&#x5728;&#x672C;&#x8282;&#x7684;&#x4ECB;&#x7ECD;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x8BF4;&#x660E; <em>&#x68C0;&#x7D22;</em> &#x548C; <em>&#x91CD;&#x5EFA;&#x7D22;&#x5F15;</em> &#x6B65;&#x9AA4;&#x7684;&#x95F4;&#x9694;&#x8D8A;&#x5C0F;&#xFF0C;&#x53D8;&#x66F4;&#x51B2;&#x7A81;&#x7684;&#x673A;&#x4F1A;&#x8D8A;&#x5C0F;&#x3002; &#x4F46;&#x662F;&#x5B83;&#x5E76;&#x4E0D;&#x80FD;&#x5B8C;&#x5168;&#x6D88;&#x9664;&#x51B2;&#x7A81;&#x7684;&#x53EF;&#x80FD;&#x6027;&#x3002; &#x8FD8;&#x662F;&#x6709;&#x53EF;&#x80FD;&#x5728; <code>update</code> &#x8BBE;&#x6CD5;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x4E4B;&#x524D;&#xFF0C;&#x6765;&#x81EA;&#x53E6;&#x4E00;&#x8FDB;&#x7A0B;&#x7684;&#x8BF7;&#x6C42;&#x4FEE;&#x6539;&#x4E86;&#x6587;&#x6863;&#x3002;</p>
<p>&#x4E3A;&#x4E86;&#x907F;&#x514D;&#x6570;&#x636E;&#x4E22;&#x5931;&#xFF0C; <code>update</code> API &#x5728; <em>&#x68C0;&#x7D22;</em> &#x6B65;&#x9AA4;&#x65F6;&#x68C0;&#x7D22;&#x5F97;&#x5230;&#x6587;&#x6863;&#x5F53;&#x524D;&#x7684; <code>_version</code> &#x53F7;&#xFF0C;&#x5E76;&#x4F20;&#x9012;&#x7248;&#x672C;&#x53F7;&#x5230; <em>&#x91CD;&#x5EFA;&#x7D22;&#x5F15;</em> &#x6B65;&#x9AA4;&#x7684; <code>index</code> &#x8BF7;&#x6C42;&#x3002; &#x5982;&#x679C;&#x53E6;&#x4E00;&#x4E2A;&#x8FDB;&#x7A0B;&#x4FEE;&#x6539;&#x4E86;&#x5904;&#x4E8E;&#x68C0;&#x7D22;&#x548C;&#x91CD;&#x65B0;&#x7D22;&#x5F15;&#x6B65;&#x9AA4;&#x4E4B;&#x95F4;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x90A3;&#x4E48; <code>_version</code>&#x53F7;&#x5C06;&#x4E0D;&#x5339;&#x914D;&#xFF0C;&#x66F4;&#x65B0;&#x8BF7;&#x6C42;&#x5C06;&#x4F1A;&#x5931;&#x8D25;&#x3002;</p>
<p>&#x5BF9;&#x4E8E;&#x90E8;&#x5206;&#x66F4;&#x65B0;&#x7684;&#x5F88;&#x591A;&#x4F7F;&#x7528;&#x573A;&#x666F;&#xFF0C;&#x6587;&#x6863;&#x5DF2;&#x7ECF;&#x88AB;&#x6539;&#x53D8;&#x4E5F;&#x6CA1;&#x6709;&#x5173;&#x7CFB;&#x3002; &#x4F8B;&#x5982;&#xFF0C;&#x5982;&#x679C;&#x4E24;&#x4E2A;&#x8FDB;&#x7A0B;&#x90FD;&#x5BF9;&#x9875;&#x9762;&#x8BBF;&#x95EE;&#x91CF;&#x8BA1;&#x6570;&#x5668;&#x8FDB;&#x884C;&#x9012;&#x589E;&#x64CD;&#x4F5C;&#xFF0C;&#x5B83;&#x4EEC;&#x53D1;&#x751F;&#x7684;&#x5148;&#x540E;&#x987A;&#x5E8F;&#x5176;&#x5B9E;&#x4E0D;&#x592A;&#x91CD;&#x8981;&#xFF1B; &#x5982;&#x679C;&#x51B2;&#x7A81;&#x53D1;&#x751F;&#x4E86;&#xFF0C;&#x6211;&#x4EEC;&#x552F;&#x4E00;&#x9700;&#x8981;&#x505A;&#x7684;&#x5C31;&#x662F;&#x5C1D;&#x8BD5;&#x518D;&#x6B21;&#x66F4;&#x65B0;&#x3002;</p>
<p>&#x8FD9;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; &#x8BBE;&#x7F6E;&#x53C2;&#x6570; <code>retry_on_conflict</code> &#x6765;&#x81EA;&#x52A8;&#x5B8C;&#x6210;&#xFF0C; &#x8FD9;&#x4E2A;&#x53C2;&#x6570;&#x89C4;&#x5B9A;&#x4E86;&#x5931;&#x8D25;&#x4E4B;&#x524D; <code>update</code> &#x5E94;&#x8BE5;&#x91CD;&#x8BD5;&#x7684;&#x6B21;&#x6570;&#xFF0C;&#x5B83;&#x7684;&#x9ED8;&#x8BA4;&#x503C;&#x4E3A; <code>0</code> &#x3002;</p>
<pre><code class="lang-js">POST /website/pageviews/<span class="hljs-number">1</span>/_update?retry_on_conflict=<span class="hljs-number">5</span>     &lt;<span class="hljs-number">1</span>&gt;
{
   <span class="hljs-string">&quot;script&quot;</span> : <span class="hljs-string">&quot;ctx._source.views+=1&quot;</span>,
   <span class="hljs-string">&quot;upsert&quot;</span>: {
       <span class="hljs-string">&quot;views&quot;</span>: <span class="hljs-number">0</span>
   }
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x5931;&#x8D25;&#x4E4B;&#x524D;&#x91CD;&#x8BD5;&#x8BE5;&#x66F4;&#x65B0;5&#x6B21;&#x3002;   </p>
</blockquote>
<p>&#x5728;&#x589E;&#x91CF;&#x64CD;&#x4F5C;&#x65E0;&#x5173;&#x987A;&#x5E8F;&#x7684;&#x573A;&#x666F;&#xFF0C;&#x4F8B;&#x5982;&#x9012;&#x589E;&#x8BA1;&#x6570;&#x5668;&#x7B49;&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#x5341;&#x5206;&#x6709;&#x6548;&#xFF0C;&#x4F46;&#x662F;&#x5728;&#x5176;&#x4ED6;&#x60C5;&#x51B5;&#x4E0B;&#x53D8;&#x66F4;&#x7684;&#x987A;&#x5E8F; <em>&#x662F;</em> &#x975E;&#x5E38;&#x91CD;&#x8981;&#x7684;&#x3002; &#x7C7B;&#x4F3C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-doc.html" target="_blank"><code>index</code> API</a> &#xFF0C; <code>update</code> API &#x9ED8;&#x8BA4;&#x91C7;&#x7528; <em>&#x6700;&#x7EC8;&#x5199;&#x5165;&#x751F;&#x6548;</em> &#x7684;&#x65B9;&#x6848;&#xFF0C;&#x4F46;&#x5B83;&#x4E5F;&#x63A5;&#x53D7;&#x4E00;&#x4E2A; <code>version</code> &#x53C2;&#x6570;&#x6765;&#x5141;&#x8BB8;&#x4F60;&#x4F7F;&#x7528; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/optimistic-concurrency-control.html" target="_blank">optimistic concurrency control</a> &#x6307;&#x5B9A;&#x60F3;&#x8981;&#x66F4;&#x65B0;&#x6587;&#x6863;&#x7684;&#x7248;&#x672C;&#x3002;</p>
<h3 id="&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;"><a name="&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;" class="anchor-navigation-ex-anchor" href="#&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;</h3>
<p>Elasticsearch &#x7684;&#x901F;&#x5EA6;&#x5DF2;&#x7ECF;&#x5F88;&#x5FEB;&#x4E86;&#xFF0C;&#x4F46;&#x751A;&#x81F3;&#x80FD;&#x66F4;&#x5FEB;&#x3002; &#x5C06;&#x591A;&#x4E2A;&#x8BF7;&#x6C42;&#x5408;&#x5E76;&#x6210;&#x4E00;&#x4E2A;&#xFF0C;&#x907F;&#x514D;&#x5355;&#x72EC;&#x5904;&#x7406;&#x6BCF;&#x4E2A;&#x8BF7;&#x6C42;&#x82B1;&#x8D39;&#x7684;&#x7F51;&#x7EDC;&#x5EF6;&#x65F6;&#x548C;&#x5F00;&#x9500;&#x3002; &#x5982;&#x679C;&#x4F60;&#x9700;&#x8981;&#x4ECE; Elasticsearch &#x68C0;&#x7D22;&#x5F88;&#x591A;&#x6587;&#x6863;&#xFF0C;&#x90A3;&#x4E48;&#x4F7F;&#x7528; <em>multi-get</em> &#x6216;&#x8005; <code>mget</code> API &#x6765;&#x5C06;&#x8FD9;&#x4E9B;&#x68C0;&#x7D22;&#x8BF7;&#x6C42;&#x653E;&#x5728;&#x4E00;&#x4E2A;&#x8BF7;&#x6C42;&#x4E2D;&#xFF0C;&#x5C06;&#x6BD4;&#x9010;&#x4E2A;&#x6587;&#x6863;&#x8BF7;&#x6C42;&#x66F4;&#x5FEB;&#x5730;&#x68C0;&#x7D22;&#x5230;&#x5168;&#x90E8;&#x6587;&#x6863;&#x3002;</p>
<p><code>mget</code> API &#x8981;&#x6C42;&#x6709;&#x4E00;&#x4E2A; <code>docs</code> &#x6570;&#x7EC4;&#x4F5C;&#x4E3A;&#x53C2;&#x6570;&#xFF0C;&#x6BCF;&#x4E2A; &#x5143;&#x7D20;&#x5305;&#x542B;&#x9700;&#x8981;&#x68C0;&#x7D22;&#x6587;&#x6863;&#x7684;&#x5143;&#x6570;&#x636E;&#xFF0C; &#x5305;&#x62EC; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x3002;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x68C0;&#x7D22;&#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x7279;&#x5B9A;&#x7684;&#x5B57;&#x6BB5;&#xFF0C;&#x90A3;&#x4E48;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; <code>_source</code> &#x53C2;&#x6570;&#x6765;&#x6307;&#x5B9A;&#x8FD9;&#x4E9B;&#x5B57;&#x6BB5;&#x7684;&#x540D;&#x5B57;&#xFF1A;</p>
<pre><code class="lang-js">GET /_mget
{
   <span class="hljs-string">&quot;docs&quot;</span> : [
      {
         <span class="hljs-string">&quot;_index&quot;</span> : <span class="hljs-string">&quot;website&quot;</span>,
         <span class="hljs-string">&quot;_type&quot;</span> :  <span class="hljs-string">&quot;blog&quot;</span>,
         <span class="hljs-string">&quot;_id&quot;</span> :    <span class="hljs-number">2</span>
      },
      {
         <span class="hljs-string">&quot;_index&quot;</span> : <span class="hljs-string">&quot;website&quot;</span>,
         <span class="hljs-string">&quot;_type&quot;</span> :  <span class="hljs-string">&quot;pageviews&quot;</span>,
         <span class="hljs-string">&quot;_id&quot;</span> :    <span class="hljs-number">1</span>,
         <span class="hljs-string">&quot;_source&quot;</span>: <span class="hljs-string">&quot;views&quot;</span>
      }
   ]
}
</code></pre>
<p>&#x8BE5;&#x54CD;&#x5E94;&#x4F53;&#x4E5F;&#x5305;&#x542B;&#x4E00;&#x4E2A; <code>docs</code> &#x6570;&#x7EC4; &#xFF0C; &#x5BF9;&#x4E8E;&#x6BCF;&#x4E00;&#x4E2A;&#x5728;&#x8BF7;&#x6C42;&#x4E2D;&#x6307;&#x5B9A;&#x7684;&#x6587;&#x6863;&#xFF0C;&#x8FD9;&#x4E2A;&#x6570;&#x7EC4;&#x4E2D;&#x90FD;&#x5305;&#x542B;&#x6709;&#x4E00;&#x4E2A;&#x5BF9;&#x5E94;&#x7684;&#x54CD;&#x5E94;&#xFF0C;&#x4E14;&#x987A;&#x5E8F;&#x4E0E;&#x8BF7;&#x6C42;&#x4E2D;&#x7684;&#x987A;&#x5E8F;&#x76F8;&#x540C;&#x3002; &#x5176;&#x4E2D;&#x7684;&#x6BCF;&#x4E00;&#x4E2A;&#x54CD;&#x5E94;&#x90FD;&#x548C;&#x4F7F;&#x7528;&#x5355;&#x4E2A; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/get-doc.html" target="_blank"><code>get</code> request</a> &#x8BF7;&#x6C42;&#x6240;&#x5F97;&#x5230;&#x7684;&#x54CD;&#x5E94;&#x4F53;&#x76F8;&#x540C;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;docs&quot;</span> : [
      {
         <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
         <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;2&quot;</span>,
         <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
         <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
         <span class="hljs-string">&quot;_source&quot;</span> : {
            <span class="hljs-string">&quot;text&quot;</span> :  <span class="hljs-string">&quot;This is a piece of cake...&quot;</span>,
            <span class="hljs-string">&quot;title&quot;</span> : <span class="hljs-string">&quot;My first external blog entry&quot;</span>
         },
         <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">10</span>
      },
      {
         <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
         <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;1&quot;</span>,
         <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;pageviews&quot;</span>,
         <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
         <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">2</span>,
         <span class="hljs-string">&quot;_source&quot;</span> : {
            <span class="hljs-string">&quot;views&quot;</span> : <span class="hljs-number">2</span>
         }
      }
   ]
}
</code></pre>
<p>&#x5982;&#x679C;&#x60F3;&#x68C0;&#x7D22;&#x7684;&#x6570;&#x636E;&#x90FD;&#x5728;&#x76F8;&#x540C;&#x7684; <code>_index</code> &#x4E2D;&#xFF08;&#x751A;&#x81F3;&#x76F8;&#x540C;&#x7684; <code>_type</code> &#x4E2D;&#xFF09;&#xFF0C;&#x5219;&#x53EF;&#x4EE5;&#x5728; URL &#x4E2D;&#x6307;&#x5B9A;&#x9ED8;&#x8BA4;&#x7684; <code>/_index</code> &#x6216;&#x8005;&#x9ED8;&#x8BA4;&#x7684; <code>/_index/_type</code> &#x3002;</p>
<p>&#x4F60;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5355;&#x72EC;&#x8BF7;&#x6C42;&#x8986;&#x76D6;&#x8FD9;&#x4E9B;&#x503C;&#xFF1A;</p>
<pre><code class="lang-js">GET /website/blog/_mget
{
   <span class="hljs-string">&quot;docs&quot;</span> : [
      { <span class="hljs-string">&quot;_id&quot;</span> : <span class="hljs-number">2</span> },
      { <span class="hljs-string">&quot;_type&quot;</span> : <span class="hljs-string">&quot;pageviews&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span> :   <span class="hljs-number">1</span> }
   ]
}
</code></pre>
<p>&#x4E8B;&#x5B9E;&#x4E0A;&#xFF0C;&#x5982;&#x679C;&#x6240;&#x6709;&#x6587;&#x6863;&#x7684; <code>_index</code> &#x548C; <code>_type</code> &#x90FD;&#x662F;&#x76F8;&#x540C;&#x7684;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x53EA;&#x4F20;&#x4E00;&#x4E2A; <code>ids</code> &#x6570;&#x7EC4;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x6574;&#x4E2A; <code>docs</code> &#x6570;&#x7EC4;&#xFF1A;</p>
<pre><code class="lang-js">GET /website/blog/_mget
{
   <span class="hljs-string">&quot;ids&quot;</span> : [ <span class="hljs-string">&quot;2&quot;</span>, <span class="hljs-string">&quot;1&quot;</span> ]
}
</code></pre>
<p>&#x6CE8;&#x610F;&#xFF0C;&#x6211;&#x4EEC;&#x8BF7;&#x6C42;&#x7684;&#x7B2C;&#x4E8C;&#x4E2A;&#x6587;&#x6863;&#x662F;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x3002;&#x6211;&#x4EEC;&#x6307;&#x5B9A;&#x7C7B;&#x578B;&#x4E3A; <code>blog</code> &#xFF0C;&#x4F46;&#x662F;&#x6587;&#x6863; ID <code>1</code> &#x7684;&#x7C7B;&#x578B;&#x662F; <code>pageviews</code>&#xFF0C;&#x8FD9;&#x4E2A;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x60C5;&#x51B5;&#x5C06;&#x5728;&#x54CD;&#x5E94;&#x4F53;&#x4E2D;&#x88AB;&#x62A5;&#x544A;&#xFF1A;</p>
<pre><code class="lang-js">{
  <span class="hljs-string">&quot;docs&quot;</span> : [
    {
      <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
      <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
      <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;2&quot;</span>,
      <span class="hljs-string">&quot;_version&quot;</span> : <span class="hljs-number">10</span>,
      <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">true</span>,
      <span class="hljs-string">&quot;_source&quot;</span> : {
        <span class="hljs-string">&quot;title&quot;</span>:   <span class="hljs-string">&quot;My first external blog entry&quot;</span>,
        <span class="hljs-string">&quot;text&quot;</span>:    <span class="hljs-string">&quot;This is a piece of cake...&quot;</span>
      }
    },
    {
      <span class="hljs-string">&quot;_index&quot;</span> :   <span class="hljs-string">&quot;website&quot;</span>,
      <span class="hljs-string">&quot;_type&quot;</span> :    <span class="hljs-string">&quot;blog&quot;</span>,
      <span class="hljs-string">&quot;_id&quot;</span> :      <span class="hljs-string">&quot;1&quot;</span>,
      <span class="hljs-string">&quot;found&quot;</span> :    <span class="hljs-literal">false</span>                            &lt;<span class="hljs-number">1</span>&gt;
    }
  ]
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x672A;&#x627E;&#x5230;&#x8BE5;&#x6587;&#x6863;&#x3002;   </p>
</blockquote>
<p>&#x4E8B;&#x5B9E;&#x4E0A;&#x7B2C;&#x4E8C;&#x4E2A;&#x6587;&#x6863;&#x672A;&#x80FD;&#x627E;&#x5230;&#x5E76;&#x4E0D;&#x59A8;&#x788D;&#x7B2C;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x88AB;&#x68C0;&#x7D22;&#x5230;&#x3002;&#x6BCF;&#x4E2A;&#x6587;&#x6863;&#x90FD;&#x662F;&#x5355;&#x72EC;&#x68C0;&#x7D22;&#x548C;&#x62A5;&#x544A;&#x7684;&#x3002;</p>
<blockquote>
<p> <img src="assets/note.png" alt="&#x6CE8;&#x610F;">  &#x5373;&#x4F7F;&#x6709;&#x67D0;&#x4E2A;&#x6587;&#x6863;&#x6CA1;&#x6709;&#x627E;&#x5230;&#xFF0C;&#x4E0A;&#x8FF0;&#x8BF7;&#x6C42;&#x7684; HTTP &#x72B6;&#x6001;&#x7801;&#x4ECD;&#x7136;&#x662F; <code>200</code> &#x3002;&#x4E8B;&#x5B9E;&#x4E0A;&#xFF0C;&#x5373;&#x4F7F;&#x8BF7;&#x6C42; <em>&#x6CA1;&#x6709;</em>&#x627E;&#x5230;&#x4EFB;&#x4F55;&#x6587;&#x6863;&#xFF0C;&#x5B83;&#x7684;&#x72B6;&#x6001;&#x7801;&#x4F9D;&#x7136;&#x662F; <code>200</code> --&#x56E0;&#x4E3A; <code>mget</code> &#x8BF7;&#x6C42;&#x672C;&#x8EAB;&#x5DF2;&#x7ECF;&#x6210;&#x529F;&#x6267;&#x884C;&#x3002; &#x4E3A;&#x4E86;&#x786E;&#x5B9A;&#x67D0;&#x4E2A;&#x6587;&#x6863;&#x67E5;&#x627E;&#x662F;&#x6210;&#x529F;&#x6216;&#x8005;&#x5931;&#x8D25;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x68C0;&#x67E5; <code>found</code> &#x6807;&#x8BB0;&#x3002;</p>
</blockquote>
<h3 id="&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;"><a name="&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;" class="anchor-navigation-ex-anchor" href="#&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;"><i class="fa fa-link" aria-hidden="true"></i></a>&#x4EE3;&#x4EF7;&#x8F83;&#x5C0F;&#x7684;&#x6279;&#x91CF;&#x64CD;&#x4F5C;</h3>
<p>&#x4E0E; <code>mget</code> &#x53EF;&#x4EE5;&#x4F7F;&#x6211;&#x4EEC;&#x4E00;&#x6B21;&#x53D6;&#x56DE;&#x591A;&#x4E2A;&#x6587;&#x6863;&#x540C;&#x6837;&#x7684;&#x65B9;&#x5F0F;&#xFF0C; <code>bulk</code> API &#x5141;&#x8BB8;&#x5728;&#x5355;&#x4E2A;&#x6B65;&#x9AA4;&#x4E2D;&#x8FDB;&#x884C;&#x591A;&#x6B21; <code>create</code> &#x3001; <code>index</code> &#x3001; <code>update</code> &#x6216; <code>delete</code> &#x8BF7;&#x6C42;&#x3002; &#x5982;&#x679C;&#x4F60;&#x9700;&#x8981;&#x7D22;&#x5F15;&#x4E00;&#x4E2A;&#x6570;&#x636E;&#x6D41;&#x6BD4;&#x5982;&#x65E5;&#x5FD7;&#x4E8B;&#x4EF6;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x6392;&#x961F;&#x548C;&#x7D22;&#x5F15;&#x6570;&#x767E;&#x6216;&#x6570;&#x5343;&#x6279;&#x6B21;&#x3002;</p>
<p><code>bulk</code> &#x4E0E;&#x5176;&#x4ED6;&#x7684;&#x8BF7;&#x6C42;&#x4F53;&#x683C;&#x5F0F;&#x7A0D;&#x6709;&#x4E0D;&#x540C;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p>
<pre><code class="lang-js">{ action: { metadata }}\n
{ request body        }\n
{ action: { metadata }}\n
{ request body        }\n
...
</code></pre>
<p>&#x8FD9;&#x79CD;&#x683C;&#x5F0F;&#x7C7B;&#x4F3C;&#x4E00;&#x4E2A;&#x6709;&#x6548;&#x7684;&#x5355;&#x884C; JSON &#x6587;&#x6863; <em>&#x6D41;</em> &#xFF0C;&#x5B83;&#x901A;&#x8FC7;&#x6362;&#x884C;&#x7B26;(<code>\n</code>)&#x8FDE;&#x63A5;&#x5230;&#x4E00;&#x8D77;&#x3002;&#x6CE8;&#x610F;&#x4E24;&#x4E2A;&#x8981;&#x70B9;&#xFF1A;</p>
<ul>
<li>&#x6BCF;&#x884C;&#x4E00;&#x5B9A;&#x8981;&#x4EE5;&#x6362;&#x884C;&#x7B26;(<code>\n</code>)&#x7ED3;&#x5C3E;&#xFF0C; <em>&#x5305;&#x62EC;&#x6700;&#x540E;&#x4E00;&#x884C;</em> &#x3002;&#x8FD9;&#x4E9B;&#x6362;&#x884C;&#x7B26;&#x88AB;&#x7528;&#x4F5C;&#x4E00;&#x4E2A;&#x6807;&#x8BB0;&#xFF0C;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x5206;&#x9694;&#x884C;&#x3002;</li>
<li>&#x8FD9;&#x4E9B;&#x884C;&#x4E0D;&#x80FD;&#x5305;&#x542B;&#x672A;&#x8F6C;&#x4E49;&#x7684;&#x6362;&#x884C;&#x7B26;&#xFF0C;&#x56E0;&#x4E3A;&#x4ED6;&#x4EEC;&#x5C06;&#x4F1A;&#x5BF9;&#x89E3;&#x6790;&#x9020;&#x6210;&#x5E72;&#x6270;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x8FD9;&#x4E2A; JSON <em>&#x4E0D;</em> &#x80FD;&#x4F7F;&#x7528; pretty &#x53C2;&#x6570;&#x6253;&#x5370;&#x3002;<blockquote>
<p> <img src="assets/tip.png" alt="&#x63D0;&#x793A;">  &#x5728; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/distrib-multi-doc.html#bulk-format" target="_blank">&#x4E3A;&#x4EC0;&#x4E48;&#x662F;&#x6709;&#x8DA3;&#x7684;&#x683C;&#x5F0F;&#xFF1F;</a> &#x4E2D;&#xFF0C; &#x6211;&#x4EEC;&#x89E3;&#x91CA;&#x4E3A;&#x4EC0;&#x4E48; <code>bulk</code> API &#x4F7F;&#x7528;&#x8FD9;&#x79CD;&#x683C;&#x5F0F;&#x3002;</p>
</blockquote>
</li>
</ul>
<p><code>action/metadata</code> &#x884C;&#x6307;&#x5B9A; <em>&#x54EA;&#x4E00;&#x4E2A;&#x6587;&#x6863;</em> &#x505A; <em>&#x4EC0;&#x4E48;&#x64CD;&#x4F5C;</em> &#x3002;</p>
<p><code>action</code> &#x5FC5;&#x987B;&#x662F;&#x4EE5;&#x4E0B;&#x9009;&#x9879;&#x4E4B;&#x4E00;:</p>
<ul>
<li><p><code>create</code></p>
<p>&#x5982;&#x679C;&#x6587;&#x6863;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x90A3;&#x4E48;&#x5C31;&#x521B;&#x5EFA;&#x5B83;&#x3002;&#x8BE6;&#x60C5;&#x8BF7;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/create-doc.html" target="_blank">&#x521B;&#x5EFA;&#x65B0;&#x6587;&#x6863;</a>&#x3002;</p>
</li>
<li><p><code>index</code></p>
<p>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x6587;&#x6863;&#x6216;&#x8005;&#x66FF;&#x6362;&#x4E00;&#x4E2A;&#x73B0;&#x6709;&#x7684;&#x6587;&#x6863;&#x3002;&#x8BE6;&#x60C5;&#x8BF7;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-doc.html" target="_blank">&#x7D22;&#x5F15;&#x6587;&#x6863;</a> &#x548C; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/update-doc.html" target="_blank">&#x66F4;&#x65B0;&#x6574;&#x4E2A;&#x6587;&#x6863;</a>&#x3002;</p>
</li>
<li><p><code>update</code></p>
<p>&#x90E8;&#x5206;&#x66F4;&#x65B0;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002;&#x8BE6;&#x60C5;&#x8BF7;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/partial-updates.html" target="_blank">&#x6587;&#x6863;&#x7684;&#x90E8;&#x5206;&#x66F4;&#x65B0;</a>&#x3002;</p>
</li>
<li><p><code>delete</code></p>
<p>&#x5220;&#x9664;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x3002;&#x8BE6;&#x60C5;&#x8BF7;&#x89C1; <a href="https://www.elastic.co/guide/cn/elasticsearch/guide/current/delete-doc.html" target="_blank">&#x5220;&#x9664;&#x6587;&#x6863;</a>&#x3002;</p>
</li>
</ul>
<p><code>metadata</code> &#x5E94;&#x8BE5; &#x6307;&#x5B9A;&#x88AB;&#x7D22;&#x5F15;&#x3001;&#x521B;&#x5EFA;&#x3001;&#x66F4;&#x65B0;&#x6216;&#x8005;&#x5220;&#x9664;&#x7684;&#x6587;&#x6863;&#x7684; <code>_index</code> &#x3001; <code>_type</code> &#x548C; <code>_id</code> &#x3002;</p>
<p>&#x4F8B;&#x5982;&#xFF0C;&#x4E00;&#x4E2A; <code>delete</code> &#x8BF7;&#x6C42;&#x770B;&#x8D77;&#x6765;&#x662F;&#x8FD9;&#x6837;&#x7684;&#xFF1A;</p>
<pre><code class="lang-js">{ <span class="hljs-string">&quot;delete&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}
</code></pre>
<p><code>request body</code> &#x884C;&#x7531;&#x6587;&#x6863;&#x7684; <code>_source</code> &#x672C;&#x8EAB;&#x7EC4;&#x6210;--&#x6587;&#x6863;&#x5305;&#x542B;&#x7684;&#x5B57;&#x6BB5;&#x548C;&#x503C;&#x3002;&#x5B83;&#x662F; <code>index</code> &#x548C; <code>create</code> &#x64CD;&#x4F5C;&#x6240;&#x5FC5;&#x9700;&#x7684;&#xFF0C;&#x8FD9;&#x662F;&#x6709;&#x9053;&#x7406;&#x7684;&#xFF1A;&#x4F60;&#x5FC5;&#x987B;&#x63D0;&#x4F9B;&#x6587;&#x6863;&#x4EE5;&#x7D22;&#x5F15;&#x3002;</p>
<p>&#x5B83;&#x4E5F;&#x662F; <code>update</code> &#x64CD;&#x4F5C;&#x6240;&#x5FC5;&#x9700;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x5E94;&#x8BE5;&#x5305;&#x542B;&#x4F60;&#x4F20;&#x9012;&#x7ED9; <code>update</code> API &#x7684;&#x76F8;&#x540C;&#x8BF7;&#x6C42;&#x4F53;&#xFF1A; <code>doc</code> &#x3001; <code>upsert</code> &#x3001; <code>script</code> &#x7B49;&#x7B49;&#x3002; &#x5220;&#x9664;&#x64CD;&#x4F5C;&#x4E0D;&#x9700;&#x8981; <code>request body</code> &#x884C;&#x3002;</p>
<pre><code class="lang-js">{ <span class="hljs-string">&quot;create&quot;</span>:  { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;My first blog post&quot;</span> }
</code></pre>
<p>&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A; <code>_id</code> &#xFF0C;&#x5C06;&#x4F1A;&#x81EA;&#x52A8;&#x751F;&#x6210;&#x4E00;&#x4E2A; ID &#xFF1A;</p>
<pre><code class="lang-js">{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;My second blog post&quot;</span> }
</code></pre>
<p>&#x4E3A;&#x4E86;&#x628A;&#x6240;&#x6709;&#x7684;&#x64CD;&#x4F5C;&#x7EC4;&#x5408;&#x5728;&#x4E00;&#x8D77;&#xFF0C;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684; <code>bulk</code> &#x8BF7;&#x6C42; &#x6709;&#x4EE5;&#x4E0B;&#x5F62;&#x5F0F;:</p>
<pre><code class="lang-js">POST /_bulk
{ <span class="hljs-string">&quot;delete&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}         &lt;<span class="hljs-number">1</span>&gt;
{ <span class="hljs-string">&quot;create&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;My first blog post&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>:  { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;My second blog post&quot;</span> }
{ <span class="hljs-string">&quot;update&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span>, <span class="hljs-string">&quot;_retry_on_conflict&quot;</span> : <span class="hljs-number">3</span>} }
{ <span class="hljs-string">&quot;doc&quot;</span> : {<span class="hljs-string">&quot;title&quot;</span> : <span class="hljs-string">&quot;My updated blog post&quot;</span>} }   &lt;<span class="hljs-number">2</span>&gt;
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x8BF7;&#x6CE8;&#x610F; <code>delete</code> &#x52A8;&#x4F5C;&#x4E0D;&#x80FD;&#x6709;&#x8BF7;&#x6C42;&#x4F53;,&#x5B83;&#x540E;&#x9762;&#x8DDF;&#x7740;&#x7684;&#x662F;&#x53E6;&#x5916;&#x4E00;&#x4E2A;&#x64CD;&#x4F5C;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x8C28;&#x8BB0;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x6362;&#x884C;&#x7B26;&#x4E0D;&#x8981;&#x843D;&#x4E0B;&#x3002; </p>
</blockquote>
<p>&#x8FD9;&#x4E2A; Elasticsearch &#x54CD;&#x5E94;&#x5305;&#x542B; <code>items</code> &#x6570;&#x7EC4;&#xFF0C; &#x8FD9;&#x4E2A;&#x6570;&#x7EC4;&#x7684;&#x5185;&#x5BB9;&#x662F;&#x4EE5;&#x8BF7;&#x6C42;&#x7684;&#x987A;&#x5E8F;&#x5217;&#x51FA;&#x6765;&#x7684;&#x6BCF;&#x4E2A;&#x8BF7;&#x6C42;&#x7684;&#x7ED3;&#x679C;&#x3002;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;took&quot;</span>: <span class="hljs-number">4</span>,
   <span class="hljs-string">&quot;errors&quot;</span>: <span class="hljs-literal">false</span>,                                <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">1</span>&gt;</span>
   &quot;items&quot;: [
      {  &quot;delete&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;123&quot;,
            &quot;_version&quot;: 2,
            &quot;status&quot;:   200,
            &quot;found&quot;:    true
      }},
      {  &quot;create&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;123&quot;,
            &quot;_version&quot;: 3,
            &quot;status&quot;:   201
      }},
      {  &quot;create&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;EiwfApScQiiy7TIKFxRCTw&quot;,
            &quot;_version&quot;: 1,
            &quot;status&quot;:   201
      }},
      {  &quot;update&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;123&quot;,
            &quot;_version&quot;: 4,
            &quot;status&quot;:   200
      }}
   ]
}
</span></code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">   &#x6240;&#x6709;&#x7684;&#x5B50;&#x8BF7;&#x6C42;&#x90FD;&#x6210;&#x529F;&#x5B8C;&#x6210;&#x3002;   </p>
</blockquote>
<p>&#x6BCF;&#x4E2A;&#x5B50;&#x8BF7;&#x6C42;&#x90FD;&#x662F;&#x72EC;&#x7ACB;&#x6267;&#x884C;&#xFF0C;&#x56E0;&#x6B64;&#x67D0;&#x4E2A;&#x5B50;&#x8BF7;&#x6C42;&#x7684;&#x5931;&#x8D25;&#x4E0D;&#x4F1A;&#x5BF9;&#x5176;&#x4ED6;&#x5B50;&#x8BF7;&#x6C42;&#x7684;&#x6210;&#x529F;&#x4E0E;&#x5426;&#x9020;&#x6210;&#x5F71;&#x54CD;&#x3002; &#x5982;&#x679C;&#x5176;&#x4E2D;&#x4EFB;&#x4F55;&#x5B50;&#x8BF7;&#x6C42;&#x5931;&#x8D25;&#xFF0C;&#x6700;&#x9876;&#x5C42;&#x7684; <code>error</code> &#x6807;&#x5FD7;&#x88AB;&#x8BBE;&#x7F6E;&#x4E3A; <code>true</code> &#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x76F8;&#x5E94;&#x7684;&#x8BF7;&#x6C42;&#x62A5;&#x544A;&#x51FA;&#x9519;&#x8BEF;&#x660E;&#x7EC6;&#xFF1A;</p>
<pre><code class="lang-js">POST /_bulk
{ <span class="hljs-string">&quot;create&quot;</span>: { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;Cannot create - it already exists&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>:  { <span class="hljs-string">&quot;_index&quot;</span>: <span class="hljs-string">&quot;website&quot;</span>, <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span>, <span class="hljs-string">&quot;_id&quot;</span>: <span class="hljs-string">&quot;123&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>:    <span class="hljs-string">&quot;But we can update it&quot;</span> }
</code></pre>
<p>&#x5728;&#x54CD;&#x5E94;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x770B;&#x5230; <code>create</code> &#x6587;&#x6863; <code>123</code> &#x5931;&#x8D25;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x3002;&#x4F46;&#x662F;&#x968F;&#x540E;&#x7684; <code>index</code> &#x8BF7;&#x6C42;&#xFF0C;&#x4E5F;&#x662F;&#x5BF9;&#x6587;&#x6863; <code>123</code> &#x64CD;&#x4F5C;&#xFF0C;&#x5C31;&#x6210;&#x529F;&#x4E86;&#xFF1A;</p>
<pre><code class="lang-js">{
   <span class="hljs-string">&quot;took&quot;</span>: <span class="hljs-number">3</span>,
   <span class="hljs-string">&quot;errors&quot;</span>: <span class="hljs-literal">true</span>,                                        &lt;1&gt;
   &quot;items&quot;: [
      {  &quot;create&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;123&quot;,
            &quot;status&quot;:   409,                              &lt;2&gt;
            &quot;error&quot;:    &quot;DocumentAlreadyExistsException   &lt;3&gt;
                        [[website][4] [blog][123]:
                        document already exists]&quot;
      }},
      {  &quot;index&quot;: {
            &quot;_index&quot;:   &quot;website&quot;,
            &quot;_type&quot;:    &quot;blog&quot;,
            &quot;_id&quot;:      &quot;123&quot;,
            &quot;_version&quot;: 5,
            &quot;status&quot;:   200                               &lt;4&gt;
      }}
   ]
}
</code></pre>
<blockquote>
<p> <img src="assets/1.png" alt="img">  &#x4E00;&#x4E2A;&#x6216;&#x8005;&#x591A;&#x4E2A;&#x8BF7;&#x6C42;&#x5931;&#x8D25;&#x3002;  </p>
<p> <img src="assets/2.png" alt="img">  &#x8FD9;&#x4E2A;&#x8BF7;&#x6C42;&#x7684;HTTP&#x72B6;&#x6001;&#x7801;&#x62A5;&#x544A;&#x4E3A; <code>409 CONFLICT</code> &#x3002;   </p>
<p> <img src="assets/3.png" alt="img">  &#x89E3;&#x91CA;&#x4E3A;&#x4EC0;&#x4E48;&#x8BF7;&#x6C42;&#x5931;&#x8D25;&#x7684;&#x9519;&#x8BEF;&#x4FE1;&#x606F;&#x3002;  </p>
<p> <img src="assets/4.png" alt="img">  &#x7B2C;&#x4E8C;&#x4E2A;&#x8BF7;&#x6C42;&#x6210;&#x529F;&#xFF0C;&#x8FD4;&#x56DE; HTTP &#x72B6;&#x6001;&#x7801; <code>200 OK</code> &#x3002;   </p>
</blockquote>
<p>&#x8FD9;&#x4E5F;&#x610F;&#x5473;&#x7740; <code>bulk</code> &#x8BF7;&#x6C42;&#x4E0D;&#x662F;&#x539F;&#x5B50;&#x7684;&#xFF1A; &#x4E0D;&#x80FD;&#x7528;&#x5B83;&#x6765;&#x5B9E;&#x73B0;&#x4E8B;&#x52A1;&#x63A7;&#x5236;&#x3002;&#x6BCF;&#x4E2A;&#x8BF7;&#x6C42;&#x662F;&#x5355;&#x72EC;&#x5904;&#x7406;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x4E00;&#x4E2A;&#x8BF7;&#x6C42;&#x7684;&#x6210;&#x529F;&#x6216;&#x5931;&#x8D25;&#x4E0D;&#x4F1A;&#x5F71;&#x54CD;&#x5176;&#x4ED6;&#x7684;&#x8BF7;&#x6C42;&#x3002;</p>
<p><strong>&#x4E0D;&#x8981;&#x91CD;&#x590D;&#x6307;&#x5B9A;Index&#x548C;Type</strong></p>
<p>&#x4E5F;&#x8BB8;&#x4F60;&#x6B63;&#x5728;&#x6279;&#x91CF;&#x7D22;&#x5F15;&#x65E5;&#x5FD7;&#x6570;&#x636E;&#x5230;&#x76F8;&#x540C;&#x7684; <code>index</code> &#x548C; <code>type</code> &#x4E2D;&#x3002; &#x4F46;&#x4E3A;&#x6BCF;&#x4E00;&#x4E2A;&#x6587;&#x6863;&#x6307;&#x5B9A;&#x76F8;&#x540C;&#x7684;&#x5143;&#x6570;&#x636E;&#x662F;&#x4E00;&#x79CD;&#x6D6A;&#x8D39;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x53EF;&#x4EE5;&#x50CF; <code>mget</code> API &#x4E00;&#x6837;&#xFF0C;&#x5728; <code>bulk</code> &#x8BF7;&#x6C42;&#x7684; URL &#x4E2D;&#x63A5;&#x6536;&#x9ED8;&#x8BA4;&#x7684; <code>/_index</code> &#x6216;&#x8005; <code>/_index/_type</code> &#xFF1A;</p>
<pre><code class="lang-js">POST /website/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;log&quot;</span> }}
{ <span class="hljs-string">&quot;event&quot;</span>: <span class="hljs-string">&quot;User logged in&quot;</span> }
</code></pre>
<p>&#x4F60;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x8986;&#x76D6;&#x5143;&#x6570;&#x636E;&#x884C;&#x4E2D;&#x7684; <code>_index</code> &#x548C; <code>_type</code> , &#x4F46;&#x662F;&#x5B83;&#x5C06;&#x4F7F;&#x7528; URL &#x4E2D;&#x7684;&#x8FD9;&#x4E9B;&#x5143;&#x6570;&#x636E;&#x503C;&#x4F5C;&#x4E3A;&#x9ED8;&#x8BA4;&#x503C;&#xFF1A;</p>
<pre><code class="lang-js">POST /website/log/_bulk
{ <span class="hljs-string">&quot;index&quot;</span>: {}}
{ <span class="hljs-string">&quot;event&quot;</span>: <span class="hljs-string">&quot;User logged in&quot;</span> }
{ <span class="hljs-string">&quot;index&quot;</span>: { <span class="hljs-string">&quot;_type&quot;</span>: <span class="hljs-string">&quot;blog&quot;</span> }}
{ <span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;Overriding the default type&quot;</span> }
</code></pre>
<p><strong>&#x591A;&#x5927;&#x662F;&#x592A;&#x5927;&#x4E86;&#xFF1F;</strong></p>
<p>&#x6574;&#x4E2A;&#x6279;&#x91CF;&#x8BF7;&#x6C42;&#x90FD;&#x9700;&#x8981;&#x7531;&#x63A5;&#x6536;&#x5230;&#x8BF7;&#x6C42;&#x7684;&#x8282;&#x70B9;&#x52A0;&#x8F7D;&#x5230;&#x5185;&#x5B58;&#x4E2D;&#xFF0C;&#x56E0;&#x6B64;&#x8BE5;&#x8BF7;&#x6C42;&#x8D8A;&#x5927;&#xFF0C;&#x5176;&#x4ED6;&#x8BF7;&#x6C42;&#x6240;&#x80FD;&#x83B7;&#x5F97;&#x7684;&#x5185;&#x5B58;&#x5C31;&#x8D8A;&#x5C11;&#x3002; &#x6279;&#x91CF;&#x8BF7;&#x6C42;&#x7684;&#x5927;&#x5C0F;&#x6709;&#x4E00;&#x4E2A;&#x6700;&#x4F73;&#x503C;&#xFF0C;&#x5927;&#x4E8E;&#x8FD9;&#x4E2A;&#x503C;&#xFF0C;&#x6027;&#x80FD;&#x5C06;&#x4E0D;&#x518D;&#x63D0;&#x5347;&#xFF0C;&#x751A;&#x81F3;&#x4F1A;&#x4E0B;&#x964D;&#x3002; &#x4F46;&#x662F;&#x6700;&#x4F73;&#x503C;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x56FA;&#x5B9A;&#x7684;&#x503C;&#x3002;&#x5B83;&#x5B8C;&#x5168;&#x53D6;&#x51B3;&#x4E8E;&#x786C;&#x4EF6;&#x3001;&#x6587;&#x6863;&#x7684;&#x5927;&#x5C0F;&#x548C;&#x590D;&#x6742;&#x5EA6;&#x3001;&#x7D22;&#x5F15;&#x548C;&#x641C;&#x7D22;&#x7684;&#x8D1F;&#x8F7D;&#x7684;&#x6574;&#x4F53;&#x60C5;&#x51B5;&#x3002;</p>
<p>&#x5E78;&#x8FD0;&#x7684;&#x662F;&#xFF0C;&#x5F88;&#x5BB9;&#x6613;&#x627E;&#x5230;&#x8FD9;&#x4E2A; <em>&#x6700;&#x4F73;&#x70B9;</em> &#xFF1A;&#x901A;&#x8FC7;&#x6279;&#x91CF;&#x7D22;&#x5F15;&#x5178;&#x578B;&#x6587;&#x6863;&#xFF0C;&#x5E76;&#x4E0D;&#x65AD;&#x589E;&#x52A0;&#x6279;&#x91CF;&#x5927;&#x5C0F;&#x8FDB;&#x884C;&#x5C1D;&#x8BD5;&#x3002; &#x5F53;&#x6027;&#x80FD;&#x5F00;&#x59CB;&#x4E0B;&#x964D;&#xFF0C;&#x90A3;&#x4E48;&#x4F60;&#x7684;&#x6279;&#x91CF;&#x5927;&#x5C0F;&#x5C31;&#x592A;&#x5927;&#x4E86;&#x3002;&#x4E00;&#x4E2A;&#x597D;&#x7684;&#x529E;&#x6CD5;&#x662F;&#x5F00;&#x59CB;&#x65F6;&#x5C06; 1,000 &#x5230; 5,000 &#x4E2A;&#x6587;&#x6863;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x6279;&#x6B21;, &#x5982;&#x679C;&#x4F60;&#x7684;&#x6587;&#x6863;&#x975E;&#x5E38;&#x5927;&#xFF0C;&#x90A3;&#x4E48;&#x5C31;&#x51CF;&#x5C11;&#x6279;&#x91CF;&#x7684;&#x6587;&#x6863;&#x4E2A;&#x6570;&#x3002;</p>
<p>&#x5BC6;&#x5207;&#x5173;&#x6CE8;&#x4F60;&#x7684;&#x6279;&#x91CF;&#x8BF7;&#x6C42;&#x7684;&#x7269;&#x7406;&#x5927;&#x5C0F;&#x5F80;&#x5F80;&#x975E;&#x5E38;&#x6709;&#x7528;&#xFF0C;&#x4E00;&#x5343;&#x4E2A; 1KB &#x7684;&#x6587;&#x6863;&#x662F;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x4E8E;&#x4E00;&#x5343;&#x4E2A; 1MB &#x6587;&#x6863;&#x6240;&#x5360;&#x7684;&#x7269;&#x7406;&#x5927;&#x5C0F;&#x3002; &#x4E00;&#x4E2A;&#x597D;&#x7684;&#x6279;&#x91CF;&#x5927;&#x5C0F;&#x5728;&#x5F00;&#x59CB;&#x5904;&#x7406;&#x540E;&#x6240;&#x5360;&#x7528;&#x7684;&#x7269;&#x7406;&#x5927;&#x5C0F;&#x7EA6;&#x4E3A; 5-15 MB&#x3002;</p>
<footer class="page-footer"><span class="copyright">Copyright &#xA9; WS 2019 all right reserved&#xFF0C;powered by Gitbook</span><span class="footer-modification">&#x8BE5;&#x6587;&#x4EF6;&#x4FEE;&#x8BA2;&#x65F6;&#x95F4;&#xFF1A;
2019-02-28 15:33:19
</span></footer>
                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="1Preface.html#鸣谢" class="navigation navigation-prev " aria-label="Previous page: 鸣谢">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="2_1_Introductory.html#你知道的为了搜索" class="navigation navigation-next " aria-label="Next page: 你知道的, 为了搜索…">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"基础入门","level":"3.1","depth":1,"next":{"title":"你知道的, 为了搜索…","level":"3.1.1","depth":2,"anchor":"#你知道的为了搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#你知道的为了搜索","articles":[{"title":"安装并运行Elasticsearch","level":"3.1.1.1","depth":3,"anchor":"#安装并运行Elasticsearch","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#安装并运行Elasticsearch","articles":[]},{"title":"安装Sense","level":"3.1.1.2","depth":3,"anchor":"#安装Sense","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#安装Sense","articles":[]},{"title":"和Elasticsearch交互","level":"3.1.1.3","depth":3,"anchor":"#和Elasticsearch交互","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#和Elasticsearch交互","articles":[]},{"title":"面向文档","level":"3.1.1.4","depth":3,"anchor":"#面向文档","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#面向文档","articles":[]},{"title":"适应新环境","level":"3.1.1.5","depth":3,"anchor":"#适应新环境","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#适应新环境","articles":[]},{"title":"索引雇员文档","level":"3.1.1.6","depth":3,"anchor":"#索引雇员文档","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#索引雇员文档","articles":[]},{"title":"检索文档","level":"3.1.1.7","depth":3,"anchor":"#检索文档","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#检索文档","articles":[]},{"title":"轻量搜索","level":"3.1.1.8","depth":3,"anchor":"#轻量搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#轻量搜索","articles":[]},{"title":"使用查询表达式搜索","level":"3.1.1.9","depth":3,"anchor":"#使用查询表达式搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#使用查询表达式搜索","articles":[]},{"title":"更复杂的搜索","level":"3.1.1.10","depth":3,"anchor":"#更复杂的搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#更复杂的搜索","articles":[]},{"title":"全文搜索","level":"3.1.1.11","depth":3,"anchor":"#全文搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#全文搜索","articles":[]},{"title":"短语搜索","level":"3.1.1.12","depth":3,"anchor":"#短语搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#短语搜索","articles":[]},{"title":"高亮搜索","level":"3.1.1.13","depth":3,"anchor":"#高亮搜索","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#高亮搜索","articles":[]},{"title":"分析","level":"3.1.1.14","depth":3,"anchor":"#分析","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#分析","articles":[]},{"title":"教程结语","level":"3.1.1.15","depth":3,"anchor":"#教程结语","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#教程结语","articles":[]},{"title":"分布式特性","level":"3.1.1.16","depth":3,"anchor":"#分布式特性","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#分布式特性","articles":[]},{"title":"后续步骤","level":"3.1.1.17","depth":3,"anchor":"#","path":"2_1_Introductory.md","ref":"2_1_Introductory.md#","articles":[]}]},"previous":{"title":"鸣谢","level":"2.1.9","depth":2,"anchor":"#鸣谢","path":"1Preface.md","ref":"1Preface.md#鸣谢","articles":[]},"dir":"ltr"},"config":{"plugins":["github@^2.0.0","edit-link@^2.0.2","anchors@^0.7.1","include-codeblock@^3.0.2","splitter@^0.0.8","tbfed-pagefooter@^0.0.1","expandable-chapters-small@^0.1.7","anchor-navigation-ex@0.1.8","book-summary-scroll-position-saver","ace","emphasize","-lunr","-search","search-plus"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"tbfed-pagefooter":{"copyright":"Copyright © WS 2019","modify_label":"该文件修订时间：","modify_format":"YYYY-MM-DD HH:mm:ss"},"emphasize":{},"ace":{},"github":{"url":"https://github.com/wjw465150/Elasticsearch"},"book-summary-scroll-position-saver":{},"splitter":{},"fontsettings":{"theme":"white","family":"sans","size":2},"highlight":{},"anchor-navigation-ex":{"isRewritePageTitle":false,"tocLevel1Icon":"fa fa-hand-o-right","tocLevel2Icon":"fa fa-hand-o-right","tocLevel3Icon":"fa fa-hand-o-right"},"expandable-chapters-small":{},"include-codeblock":{"check":false,"edit":true,"fixlang":false,"lang":"","template":"ace","theme":"chrome","unindent":true},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"edit-link":{"label":"编辑此页面","base":"https://github.com/wjw465150/Elasticsearch/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"search-plus":{}},"theme":"default","author":"WS","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Elasticsearch权威指南中文版","language":"zh-hans","gitbook":"*","description":"Elasticsearch权威指南中文版"},"file":{"path":"2_1_Introductory.md","mtime":"2019-02-28T07:33:19.814Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-03-15T05:52:05.244Z"},"basePath":".","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="gitbook/gitbook.js"></script>
    <script src="gitbook/theme.js"></script>
    
        
        <script src="gitbook/gitbook-plugin-github/plugin.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-edit-link/plugin.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-splitter/splitter.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-expandable-chapters-small/expandable-chapters-small.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-ace/ace/ace.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-ace/ace.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search-plus/jquery.mark.min.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search-plus/search.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

